Devolviendo el objeto temporal y enlazándolo a la referencia const [duplicado]
Posible duplicado:
¿Una referencia constante prolonga la vida de un temporal?
Mi compilador no se queja de asignar una referencia temporal a const:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
¿Por qué? Pensé que esa cadena regresó defoo
es temporal y val puede apuntar al objeto que ha finalizado la vida útil. ¿El estándar de C ++ permite esto y prolonga la vida útil del objeto devuelto?