私はこの厄介な問題に直面しています。Eclipseはstd::to_string
関数の認識を拒否しますが、私のプログラムはエラーなしでコンパイルされます。何が足りないのですか?
cppreference によると、std::to_string
関数は<string>
で定義されているので、私はそれを犯罪のある.cpp
ファイルに明示的に含めました。 this 、 this 、 this のソリューションも試しましたが、運がありませんでした。
他に何か提案はありますか?
編集:
Linuxでg ++ 4.7.2を使用しています。
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を再起動する必要がある場合があります。