たとえば、インデックス演算子を介してベクトル要素のメソッドまたはフィールドにアクセスしようとすると、bar[0].push_back(0)
Eclipsevector< vector< int > >
から「メソッドを解決できませんでした」というセマンティック エラーが発生します。
g++ -Wall
コードはorで問題なくコンパイルされますclang++
- ここに短い例があります。
#include <set>
#include <vector>
#include <iostream>
int main()
{
std::vector< std::vector < int > > bar(10);
bar[0].push_back(0); // eclipse "method 'push_back' could not be resolved
(bar[0]).push_back(1); // eclipse "method 'push_back' could not be resolved
bar[0][0] = 0; // This and all else is just fine for eclipse
std::vector<int> &bar0 = bar[0];
bar0.push_back(2);
std::vector<int> *pbar0 = &bar[0];
pbar0->push_back(3);
return 0;
}
std::vector<std::pair<int, int> >::iterator
にアクセスしようとすると、同様の問題が発生しますiter->first
。(フィールド 'first を解決できませんでした)。
これは C/C++ プロジェクト、.cpp ファイルであり、Eclipse 4.2.1 では未解決のインクルージョンはありません。
私はここで完全に迷っています - どうすればこの日食エラーを取り除くことができますか?
更新: 利用可能な最新バージョン: Juno Service Release 1 でもこれを試しました。同じ結果です。
Update2: 実際、新しいプロジェクトではエラーが発生しないことに気付いたので、最終的にこのエラーの原因となっている設定を特定できるはずです。これまでのところ、何も特定できませんでした。(組み込みではない) シンボルは定義されておらず、パスも適切に見えます。