临时对象的存储持续时间是多少:自动、线程、静态或动态?

Mag*_*ero 3 c++ temporary-objects storage-duration

临时对象存储持续时间是多少:自动、线程、静态或动态?

我知道临时对象的生命周期在创建它的完整表达式处或之前结束,除非它绑定到引用,在这种情况下,它的生命周期将扩展到引用的生命周期,这给了我们一个下限临时对象的存储持续时间结束。

eer*_*ika 5

标准有点模糊。它表示临时对象可以具有自动、线程或静态存储持续时间,但在这些存储持续时间的定义中,它仅指定变量何时具有此类持续时间。

该标准并没有准确说明每种情况下临时的存储持续时间。相反,它单独描述了临时对象何时被销毁。

模糊性应该不重要,除非我弄错了。当没有另外指定时,了解对象的存储持续时间名称对于了解其生命周期很有用,但临时对象的生命周期是另外指定的,因此据我所知,存储持续时间名称不会提供其他信息。

尽管标准没有这么说,但可以合理地假设,当临时对象的生命周期通过引用延长时,临时对象具有与引用相同的存储持续时间。否则,生命周期类似于在完整表达式周围的假设块内具有自动存储持续时间的变量。