A std::array<T>
本质上是一个包装在struct
中的C型阵列。 struct
的初始化需要大括号,并且数组的初始化也需要大括号。所以,我需要2双括号:std :: array <T>初始化
std::array<int, 5> a = {{1, 2, 3, 4, 5}};
但大部分我所看到的例子代码只使用一对大括号:
std::array<int, 5> b = {1, 2, 3, 4, 5};
如何走到这是不能允许的,它有什么好处或与第一次接触相比有什么缺点?
我不知道它_is_标准允许 - 可能接受该代码的编译器是基于早期的C^++ 11草案,或者只是给出一个警告,因为它是一个允许不合格代码的扩展。 – ildjarn 2012-01-14 15:55:57
@ildjarn根据约翰内斯,它是允许的。 – fredoverflow 2012-01-14 16:10:21