私は、POD、STL、および配列などの複合型用のささいな (きれいな) プリンターに取り組んでいます。そうしている間、私も初期化リストをいじっていて、次の宣言に出くわしました
std::vector<double[3]> arr{ { 10, 11, 12 }, { 20, 21, 22 } };
VC2013 と G++ 4.8 の両方が満足していないようで、一貫したエラー メッセージが表示されますが、どちらの場合も私にとってはあまり役に立ちません。
VC++ の場合: error C3074: an array can only be initialized with an initialize-list
G++ 4.8 の場合: error: array must be initialized with a brace-enclosed initialize
ここでは初期化リストを使用できないか、構文がまったく正しくありませんか?
同様の面で、次の構文は有効なようです
std::vector<std::array<int, 3>> arr{ { 10, 11, 12 }, { 20, 21, 22 } };
初期化リストで考えられる問題は何ですか?
std::array
C型配列の代わりに 使用する必要があることは理解していますが、実験中です。- 注これをいじりたくない場合は、ここにIDEONEバージョンがあります
- 注記また、標準を参照していただけると非常に有益です。