标准定义:
对象是存储区域。 [注意:一个函数不是一个对象, 无论它是否以某种方式占据存储空间 对象呢。 -end note]一个对象是由定义(3.1)创建的 新的表达式(5.3.4)或需要时的实现(12.2)。
(12.2是关于临时对象)
文字肯定占据了存储区域。我不确定报价的最后一句是成为一个对象的必要条件。文字既不是由定义创建的,也不是由new-expression创建的,但除了字符串文字之外的所有文字都是临时对象,对吧?这导致了一个奇怪的结论,即字符串文字不是对象,而所有其他文字都是对象。这感觉不对。
答案 0 :(得分:4)
除了字符串文字之外,无法保证文字占用存储空间。小文字可以直接包含在具有直接操作数的机器指令中,或者甚至(通常情况下为0)计算或永久存在于机器寄存器中。
如果需要创建临时,则应用“按需实施”这一短语。
对于字符串文字,§2.13.5说(¶16):“评估字符串文字导致字符串文字对象具有静态存储持续时间......”。也许应该在OP中引用的列表中添加对该部分的引用。