aggregate typeの、comma初期化可能条件
まず、agglegate typesっていうのは、構造体(class)や、共用体や、配列で、以下のような条件を満たすもの。
- コンストラクタがない
- ノンパブリックなメンバ変数がない
- 基底クラスがない
- 仮想関数がない
このようなタイプに対しては、コンマで区切られたリストを使っての初期化ができます。
例:
struct Hoge{ int x, y, z; }; struct Piyo{ Piyo(){} int x, y, z; }; int main(){ Hoge h = {1, 2, 3};//OK Piyo p = {1, 2, 3};//コンパイルエラー return 0; }