14

重複の可能性:
Eclipseエラーをオフにします(実際にはエラーではありません)

私はこの厄介な問題に直面しています: Eclipse はstd::to_string関数の認識を拒否しますが、私のプログラムはエラーなしでコンパイルされます。私は何が欠けていますか?

cppreferenceによると、std::to_string関数は で定義されているため、問題のあるファイル<string>に明示的に含めました。.cpp私もこれこれ、およびこのソリューションを試しましたが、運がありませんでした。

他の提案はありますか?

編集:

Linuxでg ++ 4.7.2を使用しています。

4

2 に答える 2

30

更新: 元の回答を投稿してから長い時間が経ち、古くなっています。今日 (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-std=c++11を選択し、フラグをCommand to get compiler specs に追加します。私のマシンでは、変更後は次のようになります。

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

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

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


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

Codan の一般的な問題に遭遇したようです。こちらの回答を参照してください。


コードがどのようにコンパイルされるかは 100% 明確ではありません。エクリプス内?またはコマンドラインから、フラグを適切に設定しますか? 念のため:

C++11 関数を使用しています。-std=c++0xまたはフラグをコンパイラに渡します-std=c++11か (gcc を想定)?

また、定義に追加__GXX_EXPERIMENTAL_CXX0X__して (gcc を想定)、Eclipse を再起動する必要がある場合もあります。

于 2013-01-17T14:41:25.817 に答える
10

私の場合、eclipseは次の__cplusplusように定義されていると信じていますが、これは199711L次のように定義する必要があると確信しています。201103Llibstdc++ v3

#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else

<future>およびbasic_string.h(std :: to_stringの定義がある場合)などの新しいC ++ 11ヘッダーのほとんどで、 。に含まれてい<string>ます。コンパイルするとg++ (Built by MinGW-builds project) 4.8.0 20121225 (experimental)エラーは発生しませんが。この奇妙な振る舞いは明らかに日食を混乱させ、含まれているファイルを適切に表現できなくなります。

C ++ 11ファイルを含める前__cplusplusに何かを定義すると、などの偽のeclipse構文エラーが修正されるはずです。201103LSymbol 'shared_ptr' could not be resolved

#undef __cplusplus
#define __cplusplus 201900L

再定義を行った後、プロジェクトを右クリックするIndex -> Rebuild & Freshen all filesか、Eclipseをすべて一緒に再起動することをお勧めします。

于 2013-01-17T15:59:45.323 に答える