読者です 読者をやめる 読者になる 読者になる

C++1z 単一要素の波カッコ初期化をTに推論する

C++

単一要素の波カッコ初期化(braced init list)を、(代入構文ではなく)直接autoで受けた場合のルールが、以下のように変更になります:

auto a {1};      // C++14まではinitializer_list<int>
                 // C++1zではint

auto b {1, 2};   // C++14まではinitializer_list<int>
                 // C++1zではコンパイルエラー

auto c = {1};    // これまで通りinitializer_list<int>
auto d = {1, 2}; // これもinitializer_list<int>

参照

お断り

この記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。