每当我尝试通过索引运算符访问向量元素的方法或字段时,例如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:我实际上注意到一个全新的项目,不会发生错误,所以我应该能够最终确定是什么设置导致了这个错误。到目前为止,我无法识别任何东西,没有定义(非内置)符号,路径看起来也不错。