我正在编写 C++ 应用程序,它应该在 Windows 上使用 MS C++ 和 Linux 上的 GCC 编译。我在 Windows 上编写了一个循环,它通过 std::list 进行迭代:
auto iter = container.GetObj()->begin();
while (iter!=container.GetObj()->end()){
(*(iter++))->Execute();
}
它工作正常,但是当使用 GCC "auto"编译它时无法识别:
意外标记“自动” (在 NetBeans IDE 中)
所以我修复了它定义迭代器“显式:
std::list<Container*>::iterator iter=container.GetObj()->begin();
while (iter!=container.GetObj()->end()){
(*(iter++))->Execute();
}
我的 GCC 版本是 4.7.2
这是否意味着 GCC 不支持 auto 关键字?我可能需要升级编译器吗?
最佳答案
Here 是 gcc c++ 11 支持的链接。您还需要在命令行中添加 -std=c++11。
关于c++ - 将 "auto"关键字用于带有 GCC 的 std::list 迭代器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14483569/