web-dev-qa-db-ja.com

Eclipse:関数 'to_string'を解決できませんでした

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

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

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

他に何か提案はありますか?

編集:

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

14
Avio

UPDATE:元の回答を投稿してから久しぶりで、古くなってしまいました。今日(2014年3月15日)を再確認しました:Eclipse Kepler(ビルドID 20130614-0229)では、次のことで十分です。

  • プロジェクト>プロパティ> C/C++ビルド>設定の下に追加ツール設定タブGCC C++コンパイラ>その他-std=c++11フラグ、

  • 次に、ウィンドウ>設定> C/C++>ビルド>設定の下で検出タブを選択CDTGCC組み込みコンパイラ設定そして-std=c++11を追加しますフラグをコンパイラ仕様を取得するコマンド。私のマシンでは、変更後は次のようになります。

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

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

これは確かに私のマシンで動作します。それがあなたのものではない場合は、これにショットを与えることをお勧めします: C++ 11 Eclipseでの完全サポート このアプローチの正確さについては確信が持てず、自分のマシンで実行する必要もありませんでした。 2014年3月7日の時点で、ユーザー claim それは彼らを助けたが、上記のアプローチは役に立たなかった。


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

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


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

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

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

30
Ali