我正在编写 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/

10-15 03:09