7

ヘッダー random で default_random_engine と uniform_real_distribution を使用して、ランダムな倍精度数を生成したいと考えています。

C/C++ と MinGW に Eclipse を使用してプロジェクトをビルドしています。

  • エクリプスのバージョン: 4.2.1
  • Eclipse CDT C/C++ 開発ツールのバージョン: 8.1.1.201209170703
  • Eclipse CDT GCC クロス コンパイラ サポート バージョン: 1.1.0.201209170703
  • MinGW バージョン: 4.6.2 (「gcc -v」で確認)

エディターで std::default_random_engine と入力すると、Eclipse から「タイプ 'std::default_random_engine' を解決できませんでした」というメッセージが表示されます。

C++11 機能をサポートするようにプロジェクトを構成済みです

次に、C++ 11 のサポートをテストするために、リストで初期化されたベクトルと範囲を作成しました。コードは正常に動作します。

    vector<int> ivec = {1, 2, 3};
    for (int i : ivec)
        cout << i << " ";
    cout << endl;

「std::default_random_engine」の何が問題になっていますか?これを修正するにはどうすればよいですか?

4

1 に答える 1

7

更新: 元の回答を投稿してから長い時間が経ち、古くなっています。今日 (2014 年 3 月 15 日) 再確認しました: Eclipse Kepler (ビルド ID 20130614-0229) では、

  • [Project] > [Properties] > [C/C++ Build] > [Settings]の下に追加し、[Tool Settings ] タブ で [ GCC C++ Compiler] > [Miscellaneous-std=c++11 ]フラグを追加します。

  • 次に、 [検出] タブの[ウィンドウ] > [設定] > [C/C++] > [ビルド] > [設定]CDT GCC Built-in Compiler Settingsを選択し、 Command to get compiler specs にフラグを追加します。私のマシンでは、変更後は次のようになります。 -std=c++11

    ${COMMAND} -E -P -v -dD -std=c++11 "${INPUTS}"

  • プロジェクトとインデックスの両方をクリーンアップして再構築します( [プロジェクト] > [C/C++ インデックス] > [再構築] )。Eclipse はエラー メッセージをキャッシュし、設定を変更した後にエラー メッセージが消えても表示する傾向があるためです。

これは確かに私のマシンで動作します。あなたのものでない場合は、これを試してみることをお勧めします: Eclipse での C++11 の完全なサポート。2014 年 3 月 7 日の時点で、上記のアプローチでは効果がなかったのに対し、ユーザーはそれが役に立ったと主張しています。


元の投稿、現在は古くなっています:

IDE からの誤ったエラーのようです。

プロジェクトのプロパティをクリックし、[C/C++ General] > [Code Analysis] > [Syntax and Semantic Errors] をクリックして、[ Type cannot be resolve] の選択を解除します。

また、自分のプロジェクトで、無効な引数、無効なオーバーロード、シンボルが解決されていないなど、他の多くの構文エラーとセマンティック エラーを無効にする必要がありました。これらの偽のエラーはCodanから発生します。

__GXX_EXPERIMENTAL_CXX0X__(定義/プリプロセッサマクロに追加する必要があるかもしれませんが、これについてはわかりません。)

于 2012-10-29T08:45:13.143 に答える