c ++: постоянная ссылка на значение
//old school '98 c++, no C++0x stuff
std::string getPath();
void doSomething()
{
const std::string &path = getPath(); //const reference to an rvalue
... // doSomething with path
}
void doSomething2()
{
const std::string path = getPath(); //regular variable
... // doSomething with path
}
Каковы различия между doSomething и doSomething2 и какой из них предпочтительнее?
Безопасно ли использовать константную ссылку на возвращенное значение в doSomething?
Создает ли doSomething2 копию возвращаемого значения rvalue, разрешено ли здесь компилятору выполнять оптимизацию значения rvalue?