【发布时间】:2012-10-19 18:28:13
【问题描述】:
这是一个后续问题。
在previous question 中,@JohannesSchaub-litb 表示以下代码不完全符合标准:
class { int i; }; //unnamed-class definition. § 9/1 allows this!
然后他补充说,
虽然它在语法上是有效的,但它打破了这样的类必须在其封闭范围内声明至少一个名称的规则。
我真的无法理解这一点。他在说什么名字?
谁能进一步详细说明(最好引用标准)?
【问题讨论】:
-
他在说什么名字? 不存在的那个。该声明没有声明类名,也没有声明 typedef 名称或变量/函数——没有任何内容添加到声明出现的范围内。
-
相当于写法:"int;"作为一行代码。它命名了一个类型,但没有给它一个名字。
标签: c++ class definition identifier standards-compliance