在c++中,未指定类型的基于范围的循环是如何工作的



我对C++还很陌生。所以今天在解决一个问题的时候,我写了一个这样的代码-

for(i : {1,2,3}) {
cout << i << "n";
}

它的编译和运行都很好。过了一段时间,我注意到我没有为"I"指定任何类型,也没有显示任何错误。我想知道,C++是如何处理这个问题的?内部为变量"i"设置了什么类型?

您似乎使用了一个非标准兼容编译器:基于范围的for循环,而不指定变量类型

例如,gcc似乎在5.5和6.1版本之间放弃了对这种非官方结构的支持:https://godbolt.org/z/8CJGim

最新更新