我正在编写 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 关键字?可能我需要升级编译器?