私は C++ を勉強していますが、次のような範囲ベースのfor
ループを見ました。
for (int i : {1,2,3,4,5})
std::cout << i << ' ';
{1,2,3,4,5}
舞台裏の for ループ内の一時的なものとは何ですか?
ベストアンサー1
ここでのオブジェクトはstd::initializer_list<int>
参考文献より(強調は筆者による):
std::initializer_list オブジェクトは、次の場合に自動的に構築されます。
括弧付き初期化リストは、対応するコンストラクタがstd::initializer_listパラメータを受け入れるオブジェクトをリスト初期化するために使用されます。
括弧付き初期化リストは代入の右オペランドまたは関数呼び出し引数として使用され、対応する代入演算子/関数はstd::initializer_listパラメータを受け入れます。
括弧付き初期化リストはautoにバインドされ、以下を含む範囲指定の for ループ内