从我对标准的阅读来看,这是不允许的.
如果你只查看语法定义,它似乎允许它.相关部分是:
该成员的规范是什么之间出现{ ... }在类声明.
member-specification是一系列成员声明和访问说明符.成员声明的一种可能形式是:
attribute-speci fi-seq opt decl-speci fi-seq opt member-declarator-list opt ;
因为分号之前的所有内容都是可选的,所以看起来它允许有一个空的 成员声明,它只包含一个分号.
但是,9.2/1表示:
除了用于声明朋友(11.3)或将基类成员的名称引入派生类(7.3.3)之外,成员声明声明该类的成员,并且每个此类成员声明至少应声明该类的一个成员名称.
由于空成员声明不会声明类的至少一个成员,因此即使某些编译器接受它,它似乎也不符合标准.
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |