Duplicar posibles:
C++: Life span of temporary arguments?límites de expresión completa y la duración de los temporales
Se dice que las variables temporales se destruyen como el último paso en la evaluación de la expresión completa, por ejemplo,
bar(foo().c_str());
puntero temporal vive hasta el regreso de la barra, pero lo que para el
baz(bar(foo().c_str()));
es que aún vive hasta el regreso de la barra, o el retorno Baz significa extremo expresión completa aquí, compiladores he comprobado objetos destructibles después Baz regresa, pero ¿puedo confiar en eso?
sí, la respuesta a esta pregunta debe ser una parte de http://stackoverflow.com/questions/4214153/lifetime-of-temporaries, pregunté una nueva porque no tengo derecho a publicar comentarios allí y estaba interesado en un detalle específico que no está cubierto allí. – Vasaka