文字是标准术语的对象吗?

Are literals objects by the standard terminology?

标准定义:

An object is a region of storage. [ Note: A function is not an object, regardless of whether or not it occupies storage in the way that objects do. —end note ] An object is created by a definition (3.1), by a new-expression (5.3.4) or by the implementation (12.2) when needed.

(12.2 是关于临时对象的)

字面值肯定会占用一个存储区域。我不确定报价的最后一句话是成为对象的必要条件。文字既不是由定义也不是由 new 表达式创建的,但是除了字符串文字之外的所有文字都是临时对象,对吧?这导致了一个奇怪的结论,即字符串文字不是对象,而所有其他文字都是对象。这感觉不对。

除了字符串字面量外,不能保证字面量占用存储空间。小字面量可能会直接合并到具有直接操作数的机器指令中,或者甚至(如 0 的常见情况)被计算或永久存在于机器寄存器中。

如果需要创建一个临时文件,则短语 "by the implementation as needed" 适用。

至于字符串文字,§2.13.5 说 (¶16):"Evaluating a string-literal results in a string literal object with static storage duration…"。也许应该将对该部分的引用添加到 OP 中引用的列表中。