7.1.6.1/1包含以下声明(强调我的):
有两个 cv-qualifiers ,const和volatile。 如果是 cv-qualifier 出现在 decl-specifier-seq , init-declarator-list 中 声明不得为空。
以上粗体语句的相关性是什么?换句话说,是否可以在 decl-specifier-seq 中生成 cv-unqualified 类型的示例,其中 init-declarator-list声明的是空的吗?
答案 0 :(得分:11)
当然,大多数类和枚举定义都使用它:
struct A { }; // valid
const struct B { }; // invalid, const would have no meaning
const struct C { } c { }; // valid
没有别的。 init-declarator-list仅用于简单声明,为此,标准(C ++ 11)声明:
7声明[dcl.dcl]
3在 simple-declaration 中,只有在声明一个类(第9节)或枚举(7.2)时,才能省略可选的 init-declarator-list ,是,当 decl-specifier-seq 包含类说明符时,详细说明类型说明符包含类 - key (9.1),或枚举说明符。