c ++: const odwołanie do wartości rvalue
//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
}
Jakie są różnice między doSomething a doSomething2 i które z nich są do wyboru?
Czy bezpieczne jest używanie stałego odwołania do zwróconej wartości r w cokolwiek?
Czy doSomething2 tworzy kopię zwracanej wartości rvalue, czy kompilator może tutaj dokonać optymalizacji wartości rvalue?