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