4

我的 C++ 应用程序在 Netbeans 中按预期编译和运行。但是,代码帮助不识别诸如cbegin(), cend(),之类的术语unordered_set,如红色下划线所示:

在此处输入图像描述

但是,代码帮助确实可以识别end()。无济于事,我尝试转到项目-> 属性-> 代码帮助-> C++ 标准-> C++11。我还应该更新或配置什么以让 Netbeans 代码帮助识别这些术语?

4

2 回答 2

5

确保您使用 Netbeans 版本 >= 7.2,因为此版本中引入了 C++11 支持(请参阅“C/C++”)。

如果您已经在 NB 中将 C++ 标准设置为 C++11,则可以重新解析您的项目:

  1. 选择您的 C++ 项目 --> 右键单击
  2. Code Assistance->Reparse Project

编辑:

我在NetBeans 7.3 RC1下使用以下代码测试了这些方法(使用GCC 4.7.2):

#include <iostream>
#include <list>

int main ()
{
  std::list<int> mylist = {5,10,15,20};

  std::cout << "mylist contains:";

  for (auto it = mylist.cbegin(); it != mylist.cend(); ++it)
    std::cout << ' ' << *it;

  std::cout << '\n';

  return 0;
}

将 C++ 标准设置为默认值会失败,但使用 C++11 ( Project Properties -> Build -> C++ Compiler -> C++ Standard = C++11) 可以。

于 2013-02-03T19:16:51.663 回答
2

当我开始使用 NetBeans 和 C++11 时,我牢记了几点

  • 确保它是最新的(NetBeans 7.2.1)
  • 不要使用 Cygwin 来包含 GCC 库来编译您的程序。请改用 MinGW 安装程序。使用 MinGW 安装程序时,还要确保从 Internet 上“下载最新的软件包”。
  • 安装后,请确保环境路径变量设置正确。
  • 打开 NetBeans 并转到Tools-> Options。单击 C/C++ 选项卡并确保将 MinGW 用作默认编译器。
  • 右键单击您的项目并选择Properties。选择 C++ Compiler选项并确保您已在 Additional options 空间中写入-std=c++11
于 2013-02-03T19:33:52.883 回答