2013-03-21

C++11における空のリスト初期化

最近、C++WGの論文で空のリスト初期化の利用がとてつもなく増えている。なんでも空のリスト初期化の感がある。

T t { } ;

空のリスト初期化の利点は、アグリゲートならアグリゲート初期化の結果としてゼロ初期化されるし、クラスならばデフォルトコンストラクターが呼ばれるし、その他の型ならばとりあえずvalue初期化の結果としてゼロ初期化されるし、まあ便利な初期化だ。これまで、初期化子を指定しない場合、コンストラクターのない型でautomaticやdynamic storage duraionを持つオブジェクトは、indeterminate value(よくわからない値)になるので、空のリスト初期化を使うだけで最悪ゼロ初期化できるのだから、そりゃ使うしかない。

No comments: