Rak*_*111 10 c++ declaration definition c++11
在阅读标准时,我真的很惊讶地看到,实际上,名称在声明中是可选的:
struct Magic {};
int main() {
int; // well-formed
Magic; // well-formed
}
Run Code Online (Sandbox Code Playgroud)
对于那些有兴趣阅读标准的人来说,这是因为在简单声明中,init-declarator-list是可选的.这是一个演示.
所以我真的想知道为什么这是允许的.我为什么要这么做?这对我来说毫无意义.我的理由是,因为如果没有意义,为什么要允许呢?
Vla*_*cow 14
根据C++标准(7声明)
5在一个简单声明中,只有在声明一个类(第9节)或枚举(7.2)时,也就是说,当decl-specifier-seq包含一个 类说明符时,可以省略可选的init-declarator-list.elaborated-type-specifier,带有类键(9.1)或枚举说明符 ....
因此这段代码
int main() {
int; // well-formed
Magic; // well-formed
}
Run Code Online (Sandbox Code Playgroud)
是不正确的.
此外,这些形式错误的声明在形式上是根据3.1声明和定义第2节的定义,显然这样做是没有意义的.
| 归档时间: |
|
| 查看次数: |
770 次 |
| 最近记录: |