4

私のC++アプリケーションは、Netbeansで期待どおりにコンパイルおよび実行されます。ただし、Code Assistanceは、赤いアンダースコアで示されているように、、、cbegin()などcend()の用語を認識しません。unordered_set

ここに画像の説明を入力してください

end()ただし、コード支援は認識します。無駄に、私はプロジェクト->プロパティ->コードアシスタンス->C++標準->C++11に行ってみました。Netbeansコードアシスタンスがこれらの用語を認識できるようにするには、他に何を更新または設定する必要がありますか?

4

2 に答える 2

5

このバージョンではC++11サポートが導入されたため、Netbeansバージョン> = 7.2を使用するようにしてください(「C / C ++」を参照)。

NBでC++標準をC++11に既に設定している場合は、プロジェクトを再解析できます。

  1. C++プロジェクトを選択->右クリック
  2. Code Assistance->Reparse Project

編集:

NetBeans 7.3 RC1GCC 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 ++ Standardがデフォルトに設定されている場合、これは失敗しますが、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)
  • プログラムをコンパイルするためにGCCライブラリを含めるためにCygwinを使用しないでください。代わりにMinGWインストーラーを使用してください。また、MinGWインストーラーを使用する場合は、インターネットから「最新のパッケージをダウンロードする」ことを確認してください。
  • インストール後、環境パス変数が正しく設定されていることを確認してください。
  • NetBeansを開き、「ツール」->「オプション」に移動します。[C / C ++]タブをクリックして、MinGWがデフォルトのコンパイラとして使用されていることを確認します。
  • プロジェクトを右クリックして、[プロパティ]を選択します。C ++コンパイラオプションを選択し、[ 追加オプション]スペースに-std = c++11と記述していることを確認します。
于 2013-02-03T19:33:52.883 に答える