我使用gcc 4.8.1编译器编译我的代码,该代码使用 auto 的新c ++ 11功能。假设 auto 关键字会自动推断数据类型。但是,编译器会抛出错误:
*** does not name a type
这是我的代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str="If you want to do it, try your best.";
cout<<str<<endl;
for(auto i:str){ //<-error here
cout<<i<<endl;
}
return 0;
}
错误是:
'i' does not name a type.....(of course there are some error message following)
我的编译器版本是:gcc version 4.8.1(in MingW)
根据gcc文档,这个版本的gcc已经支持c ++ 11, 那么为什么会这样呢?
答案 0 :(得分:3)
您需要使用-std=c++11
标志
e.g:
gcc somefile.c -std=c++11