Retornando objeto temporário e ligação à referência const [duplicata]
Duplicata Possível:
Uma referência const prolonga a vida de um temporário?
Meu compilador não reclama sobre a atribuição temporária à referência const:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
Por quê? Eu pensei que a corda retornoufoo
é temporário e val pode apontar para o objeto que a vida útil acabou. O padrão C ++ permite isso e prolonga a vida útil do objeto retornado?