【发布时间】:2014-09-21 21:45:59
【问题描述】:
我正在阅读 C++11 标准,但不知道是否
T x{};
是值初始化或默认初始化(自动存储)。 它确实很清楚地说:
10 初始化器为空括号集的对象,即 (),应进行值初始化。
还有那个
11 如果没有为对象指定初始化器,则该对象是默认初始化的;
但我能找到的关于T x{}; 的只有:
以 T x(a) 形式发生的初始化; Tx{a}; 以及在 new 表达式 (5.3.4)、static_cast 表达式 (5.2.9)、函数符号类型转换 (5.2.3) 以及基类和成员初始化程序 (12.6.2) 中称为直接初始化。
和
如果初始值设定项是(无括号的)大括号初始化列表,则对象或引用是列表初始化的 (8.5.4)。
我不熟悉阅读标准的水平。有人能指出我正确的方向吗?
【问题讨论】:
标签: c++ c++11 language-lawyer uniform-initialization