Límites de expresión completa y vida útil de los temporales [duplicado]

Posible duplicado:
C ++: ¿Duración de los argumentos temporales?

Se dice que las variables temporales se destruyen como el último paso para evaluar la expresión completa, por ejemplo,

bar( foo().c_str() );

l puntero @temporal vive hasta que la barra regrese, pero ¿qué pasa con la

baz( bar( foo().c_str() ) );

es aún vive hasta que la barra regrese, o baz return significa que la expresión completa termina aquí, los compiladores revisé los objetos de destrucción después de que baz regresa, pero ¿puedo confiar en eso?