5

每当我尝试通过索引运算符访问向量元素的方法或字段时,例如bar[0].push_back(0)vector< vector< int > >我从 eclipse 中得到“方法无法解析”的语义错误。

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。结果相同。

更新2:我实际上注意到一个全新的项目,不会发生错误,所以我应该能够最终确定是什么设置导致了这个错误。到目前为止,我无法识别任何东西,没有定义(非内置)符号,路径看起来也不错。

4

2 回答 2

2

从头开始重新创建项目解决了这个问题。看来该项目是由以前的 eclipse 版本创建的,可能会导致问题。由于 .project 和 .cproject 中的大量更改,无法确定具体原因。

于 2012-12-03T22:29:59.697 回答
0

通过Project-> clean and rebuild,这个问题就解决了。

于 2021-09-30T09:57:37.027 回答