5

たとえば、インデックス演算子を介してベクトル要素のメソッドまたはフィールドにアクセスしようとすると、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: 実際、新しいプロジェクトではエラーが発生しないことに気付いたので、最終的にこのエラーの原因となっている設定を特定できるはずです。これまでのところ、何も特定できませんでした。(組み込みではない) シンボルは定義されておらず、パスも適切に見えます。

4

2 に答える 2

2

プロジェクトを最初から再作成すると、問題が修正されました。プロジェクトが以前のバージョンの eclipse によって作成されたようで、問題が発生している可能性があります。.project と .cproject に多数の変更が加えられたため、特定の原因を特定できませんでした。

于 2012-12-03T22:29:59.697 に答える