私もこの問題に遭遇しました。WindowsでEclipse + Mingw GCCを使用するのは信じられないほどです....このようなランダムな問題のため、ひどいセットアップです。たとえば、私のワークスペースには std=c++11 または gnu フラグ以外の回避策を必要としない C++11 プロジェクトが 1 つありますが、他のプロジェクトはこれに関係なく完全に停止します。
残念ながら、唯一の答えは、私がハックと見なすものです。Tuple ヘッダーを見ると、次のように表示されます。
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else
ここで答え(解決策)が明らかになります。コンパイラ フラグまたは.cpp
ファイル内の定義として、どこかで __cplusplus を greater than として定義する必要があります201103L
。私がこれをどのように行ったかは、
プロジェクト プロパティ -> C/C++ 一般 -> パスとシンボル
次に、「シンボル」タブの下に、新しいシンボルを追加しました。使用したシンボル名と使用__cplusplus
した値については201303L
. これにより、インデクサーが強制的に再実行され、その時点で Eclipse は C++11 インクルードを正しく使用します。
余談ですが、誰かがすべてを適切にセットアップする Eclipse CDT + Mingw GCC インストーラーを作成するのは、もう終わりだと思います。この問題は、Mingw のバグ アウト バージョンから IDE での貧弱なインデックス作成と解析まで、この IDE とツールチェーンで遭遇する信じられないほど多くの問題のほんの一部にすぎません。その点については、Mingw のバグのあるディストリビューションを使用していないことを常に確認してください。これにより、これらの問題が発生する可能性もあります。
編集#1
このシンボルを使用する場合でも、「その他」の下にコンパイラフラグとして --std=X フラグを含める必要があることにも注意してください。このシンボルは、IDE が正しい C++11 サポートでヘッダーを解析するためのものです。