在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条)组成。翻译单元由声明序列
翻译单位:
申报seq opt
根据语法描述,您将找到声明seq中允许的内容,以及每个宣言允许的内容。可以看出,在翻译单元级别不允许使用常规语句。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 当vector是tje全局变量时,c++中vector的内存管理
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 如何创建一个空的全局类并在启动时实例化它
- 内联函数中具有内部链接的全局变量
- 为什么虚函数不能是静态的和全局的?
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 全局作用域中函数指针的赋值
- g++用户定义的动态链接库上的全局new和delete运算符
- 在命名空间中使用全局命名空间中的函数
- 全局变量 多读取器 一个写入器多线程安全?
- 类的全局对象和静态成员
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 不同作用域中的静态变量和全局变量
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 使用全局声明的向量时,C++双重释放错误/损坏
- 将线程中的数据存储到全局容器的最佳方法?
- 如何重写全局方法名称以在调用原始方法之前将我的代码推到前面