以下是基于循环的范围内的幕后列表

What is the following list of behind the scenes inside the range-based for loop?

本文关键字:范围内 列表 循环 于循环      更新时间:2023-10-16

我正在学习C++,我看到了一个基于范围的for循环,如下所示:

for (int i : {1,2,3,4,5})
std::cout << i << ' ';

幕后for循环中的临时{1,2,3,4,5}是什么?

这里的对象是std::initializer_list<int>的一个实例。来自参考(强调矿):

当:时,会自动构造std::initializer_list对象

有支撑的init列表用于列出初始化对象的列表,其中相应的构造函数接受std::initializer_list参数

有支撑的init列表用作赋值的右操作数或函数调用参数,相应的赋值运算符/函数接受std::initializer_list参数

一个支持的init列表绑定到auto,包括在一个范围内的for循环

幕后for循环中的临时{1,2,3,4,5}是什么?

std::initializer_list<int>