被注释掉的表达下面的代码无法编译,因为它在全局范围内。但是我在 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 条)组成。翻译单元包括
一系列声明的序列。
翻译单位:
声明-seq opt
按照该语法描述,您将找到 a 中允许的内容声明序列以及每个中允许的内容宣言。可以看出,常规陈述不允许在翻译单元 level.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)