可能重复:
C++:临时参数的寿命?
据说临时变量在评估完整表达式的最后一步被销毁,例如
bar( foo().c_str() );
临时指针一直存在到 bar 返回,但是对于
baz( bar( foo().c_str() ) );
它是否仍然存在,直到 bar 返回,或者 baz return 意味着这里的完整表达式结束,我在 baz 返回后检查了 destruct objects 的编译器,但我可以依赖它吗?
可能重复:
C++:临时参数的寿命?
据说临时变量在评估完整表达式的最后一步被销毁,例如
bar( foo().c_str() );
临时指针一直存在到 bar 返回,但是对于
baz( bar( foo().c_str() ) );
它是否仍然存在,直到 bar 返回,或者 baz return 意味着这里的完整表达式结束,我在 baz 返回后检查了 destruct objects 的编译器,但我可以依赖它吗?