我现在正在阅读 C++14 的标准草案,也许我的法律术语有点生疏,但我找不到任何关于允许初始化的内容,如下所示
std::array<int, 3> arr{1,2,3};
是合法的。(编辑:显然以上是 C++11 中的合法语法。)目前在 C++11 中,我们必须将 std::array 初始化为
std::array<int, 3> arr{{1,2,3}}; // uniform initialization + aggregate initialization
或者
std::array<int, 3> arr = {1,2,3};
我想我在某处听说他们正在放宽 C++14 中的规则,以便我们在使用统一初始化时不必使用双括号方法,但我找不到实际的证明。
注意:我关心这个的原因是因为我目前正在开发一个 multi_array - 类型并且不想像初始化它一样
multi_array<int, 2, 2> matrix = {
{{ 1, 2 }}, {{ 3, 4 }}
};