繁体   English   中英

在c ++中,仅在全局范围内允许使用“表达式”来初始化全局对象。 在标准中哪里可以找到?

[英]In c++, `expressions` are allowed in global scope only to initialize global objects. Where can I find this in the Standard?

下面的注释表达式不能编译,因为它在全局范围内。 但是在C ++标准的哪里可以找到与此限制有关的内容? 我记得,在全局范围内仅允许表达式初始化全局对象。 我已经研究了第5章表达式 ,但无济于事。

#include <iostream>
//std::cout.setf(std::ios_base::hex, std::ios_base::basefield);


int main()
{
    std::cout.setf(std::ios_base::hex, std::ios_base::basefield);
} 

我相信一切都将取决于3.5程序和链接

1)一个程序由一个或多个链接在一起的翻译单元(第2条)组成。 翻译单元由一系列声明组成。
翻译单位:
声明顺序选择

在该语法说明之后,您将找到一个声明序列中允许的内容以及每个声明中允许的内容。 可以看出,在翻译单位级别不允许使用常规语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM