возвращается.
жный дубликат:
C ++: продолжительность жизни временных аргументов?
Говорят, что временные переменные уничтожаются как последний шаг в оценке полного выражения, например,
bar( foo().c_str() );
временный указатель дожил до возвращения бара, но зачем
baz( bar( foo().c_str() ) );
он все еще длится до возврата bar или baz означает здесь конец полного выражения, проверенные компиляторы уничтожают объекты после возврата baz, но могу ли я на это положиться?