#include <iostream>#include <vector>int main (){ std::vector<int> data = { 1,2,3,4 }; for ( int datum : data ) { std::cout << datum << std::endl; }}
我编译它:
g++ test.cpp -std=c++0x
我也试过gnu 0x,但输出是一样的.
这是输出:
test.cpp: In function ‘int main()’:test.cpp:8:21: error: expected initializer before ‘:’ tokentest.cpp:12:1: error: expected primary-Expression before ‘}’ tokentest.cpp:12:1: error: expected ‘;’ before ‘}’ tokentest.cpp:12:1: error: expected primary-Expression before ‘}’ tokentest.cpp:12:1: error: expected ‘)’ before ‘}’ tokentest.cpp:12:1: error: expected primary-Expression before ‘}’ tokentest.cpp:12:1: error: expected ‘;’ before ‘}’ token
在此先感谢您的帮助.
编辑:我正在使用GCC版本4.5.2,我现在看到它太旧了.
解决方法 您需要GCC 4.6及更高版本才能获得基于范围的for循环.GCC’s C++0x status
$cat for.cpp#include <iostream>int main(){ for (char c: "Hello,world!") std::cout << c; std::cout << std::endl; return 0;}$g++ -std=c++0x -o for for.cpp$./forHello,world!$g++ --versiong++ (GCC) 4.6.1 20110325 (prerelease)总结
以上是内存溢出为你收集整理的G不编译基于C 0x范围的循环全部内容,希望文章能够帮你解决G不编译基于C 0x范围的循环所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)