我正在学习C++,我看到了一个for像这样的基于范围的循环:
for (int i : {1,2,3,4,5})
std::cout << i << ' ';
Run Code Online (Sandbox Code Playgroud)
{1,2,3,4,5}幕后for循环的临时性是什么?
tas*_*oor 76
这里的对象是一个实例std::initializer_list<int>.从参考(强调我的):
在以下情况下自动构造std :: initializer_list对象:
braced-init-list用于列表初始化对象,其中相应的构造函数接受std :: initializer_list参数
braced-init-list用作赋值的右操作数或函数调用参数,相应的赋值运算符/函数接受std :: initializer_list参数
braced-init-list绑定到auto,包括在ranged for循环中