temporary objects 是真的吗?存储在动态(堆)内存中?
最佳答案
标准没有为它们强制要求任何内存区域(堆/堆栈),但它们就像局部变量“自动存储”一样,位于表达式的末尾(或绑定(bind)到 ref-to- 时更长) const) 它们被破坏了。
大多数实现会将它们存储在堆栈中,就像局部变量一样。
编辑:
正如 James Kanze 所指出的:在通过 ref-to-const 延长临时对象的生命周期的情况下,它的存储位置在大多数实现中都多少取决于该引用的存储位置。也就是说,在静态存储中引用的情况下,临时文件也将如此(刚刚在 gcc 上确认)。 (尽管恕我直言,虽然这在标准意义上仍然是临时的,但从该词的直观英语意义上来说,这是否是临时的还有待商榷)
关于c++ - 临时对象存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109831/