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

时间:2013-01-23 15:46:54

标签: c++ gcc c++11

我正在编写C ++应用程序,它应该在Windows上使用MS C ++和在Linux上使用GCC编译。我在Windows上编写了一个循环,它遍历std :: list:

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

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

 }

它工作正常,但在使用GCC编译时,“auto”无法识别:

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

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

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

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

 }

我的GCC版本是4.7.2

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

1 个答案:

答案 0 :(得分:6)

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