Visual Studio 2010 是否执行零初始化
Does Visual Studio 2010 perform zero-initialization?
C++11 允许使用表达式 T();
(http://en.cppreference.com/w/cpp/language/zero_initialization( 初始化零值。Visual Studio 2010 是否支持此功能?我运行了一些实验,将T x;
与T x = T();
进行比较,我得出结论,后一种情况确实将值初始化为零,但我不确定我是否可以依赖它。
VS2010文档中是否提到了零初始化?VS2010 初始值设定项页面(https://msdn.microsoft.com/en-us/library/w7wd1177(v=vs.100(.aspx(没有提到它,这与更高版本的页面不同,例如 VS2013 (https://msdn.microsoft.com/en-us/library/w7wd1177(v=vs.120(.aspx(。
这是从一开始就存在的语言的基本行为。它没有在C++11中引入(在该cpp首选项页面上请注意,"自C++11"仅与用法(2(下的第三个示例对齐;当然不是很清楚(。
如果T
int
并且T()
不会导致值零的临时int
(这是通过值初始化进行零初始化(,编译器将有一个非常严重的错误。我确信Visual Studio没有这个错误。
至于证明,VS2010文档似乎没有在标准提到它的地方(即在显式类型转换表达式部分(提到这种行为。当然,随着时间的推移,他们的文档可能会发生变化/演变/变得更加彻底,特别是随着C++本身添加了越来越多的初始化方法。
相关文章:
- 在C/C++中执行"_dl_init"(程序初始化)是单线程的吗
- make_shared是否对每个成员变量执行默认初始化(零初始化)
- Arduino 类初始化执行
- Visual Studio 2010 是否执行零初始化
- 执行输入检查并在C++中初始化对象
- 使用构造函数的可变参数中的其他模板化类执行模板化类的初始化
- 通过写入全局llvm的地址从执行引擎外部初始化全局llvm值有效吗
- 在构造函数中的成员初始化之前执行必要的工作
- G++ 在执行复制初始化时找不到正确的复制构造函数
- 如何在执行加载库时初始化 CRT( "*.exe" )
- 为什么此处不对引用初始化执行复制初始化?
- 为什么 std::atomic 初始化不执行原子释放,以便其他线程可以看到初始化的值?
- std::make_shared是否执行值初始化(GCC和clang不同意)
- Clang静态分析-根据执行流检查可为空的变量初始化
- c++符号分析:如何确定执行了哪些静态初始化
- 代码是否被视为可移植可执行文件格式中的初始化数据,初始化数据和单元化数据之间的确切区别是什么
- C++,是由多个线程执行的静态初始化
- 在引导过程中,在驱动程序初始化后执行操作
- 是在构造函数初始值设定项列表执行之前初始化的成员值
- 执行 std::元组和 std::p air 支持聚合初始化