C++ 临时对象的生存周期

  C++ 临时对象的生存周期是一个不小的坑,参考 C++ standard 第十二章第二节,总结其规则如下:

  1. 基本原则:临时变量生存到其所在的完整表达式执行完毕之后(若作为函数参数,则以函数所在的完整表达式为准)。
  2. 若其绑定到一个 const 引用上,则它将生存周期将被扩展到和该 const 引用一致,但是不会接着传递到另一个 const 引用。
  3. ctor-initializer 中的临时变量生存到构造函数结束。
  4. 如果临时变量是以函数返回值的形式绑定到 const 引用上,则结果是 undefined 的。(这里和第二条不一样)
posted @ 2013-10-27 21:43  何磊  阅读(499)  评论(0编辑  收藏  举报