对Gd使用std :: list迭代器的"auto"关键字

Mic*_* IV 3 c++ gcc c++11

我写C++应用程序应当编译在Windows和GCC上Linux.I都使用MS C++写了一个循环在Windows上通过的std ::列表,它迭代:

 auto  iter = container.GetObj()->begin();
 while (iter!=container.GetObj()->end()){

   (*(iter++))->Execute();

 }
Run Code Online (Sandbox Code Playgroud)

它工作正常,但用GCC编译时"auto"无法识别:

未检测到的令牌"auto" (在NetBeans IDE中)

所以我修复了它"明确定义迭代器:

 std::list<Container*>::iterator iter=container.GetObj()->begin();
 while (iter!=container.GetObj()->end()){

   (*(iter++))->Execute();

 }
Run Code Online (Sandbox Code Playgroud)

我的GCC版本是4.7.2

这是否意味着GCC不支持auto关键字?可能我需要升级编译器吗?

rer*_*run 6

是gcc c ++ 11支持的链接.您还需要在命令行中添加-std = c ++ 11.