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