6
コンストラクター初期化子でのメンバー配列の初期化
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; 理由は、配列は=構文でのみ初期化できるためです。つまり、 int arr[3] = {1,3,4}; ご質問 やりたいことを行うにはどうすればよいですか(つまり、コンストラクターで配列を初期化します(本体の要素を割り当てません))。それも可能ですか? C ++ 03標準は、ctor初期化子での集約(配列を含む)の初期化に関して特別なことを言っていますか?または、上記のコードの無効性は他のいくつかのルールの当然の結果ですか? C ++ 0x初期化リストは問題を解決しますか? PS私がよく知っているベクトル、boost :: array、および配列に対するその優位性については言及しないでください。