c ++: referência const a um valor
//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
}
Quais são as diferenças entre doSomething e doSomething2 e qual delas é preferível?
É seguro usar a referência const para retornar rvalue em doSomething?
O doSomething2 cria uma cópia do rvalor retornado, o compilador tem permissão para fazer a otimização do rvalue aqui?