C++14 Draft N3485にてCWG defect #1270が適用され、initializer-listによるaggregate(集成体)の初期化条件が緩和された。
C++11標準ライブラリ
std::vector
,std::array
において Uniform initialization と Initializer list を組み合わせた場合に、N3337現在ではそれぞれ異なる表記が必要となる。2012年7月現在、CWG defect #1270に挙げられている。std::vector<int> x0{1,2,3,4}; std::array<int, 4> y0{{1,2,3,4}}; // {}が二重に必要vector/arrayとUniform initialization+Initializer list
この修正により、C++14ではstd::vector
と同様にstd::array
の初期化を行えるようになる。
std::vector<int> x0{1,2,3,4}; std::array<int, 4> y0{1,2,3,4}; std::vector<int> x1 = {1,2,3,4}; std::array<int, 4> y1 = {1,2,3,4};
関連URL