Wak*_*zil 7 c++ language-lawyer c++11
我认为这是C++ 11标准中的(次要)缺陷.在[dcl.dcl]中我们有:
简单声明:
decl-specifier-seq opt init-declarator-list opt ;
该DECL说明符-SEQ不能是可选的.
例如,下面的代码片段无法编译:
x;
Run Code Online (Sandbox Code Playgroud)
如果我在这里是正确的,那么第8.3/1段的开头也应该改变:
从:
声明符列表出现在可选(第7节) decl-specifier-seq(7.1)之后.
至:
在decl-specifier-seq(7.1)之后出现一个声明符列表.
小智 11
评论太久了
在第7条第3款中:
在一个简单声明中,只有在声明一个类(第9节)或枚举(7.2)时,也就是说,当decl-specifier-seq包含一个 类说明符时,可以省略可选的init-declarator-list,详细说明-type-specifier,带有类键(9.1)或枚举说明符.在这些情况下,只要在decl-specifier-seq中存在类说明符或 枚举说明符,这些说明符中的标识符就是声明声明的名称(作为类名,枚举名或枚举符,取决于语法).在这种情况下,除了声明未命名的位字段(9.6)之外,decl-specifier-seq应在程序中引入一个或多个名称,或者重新声明由先前声明引入的名称.
并在第7条第9款中
只有在构造函数,析构函数和类型转换的函数声明中,才能省略decl-specifier-seq.
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |