每当我尝试通过索引运算符访问向量元素的方法或字段时,例如bar[0].push_back(0)
vector< vector< int > >
我从eclipse中得到“方法无法解决”的语义错误。
代码与g++ -Wall
或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
时遇到了类似问题。 (领域'首先无法解决)。
它是一个C / C ++项目,.cpp文件,在Eclipse 4.2.1中,没有未解决的内容。
我完全迷失在这里 - 我怎么能摆脱这个日食错误?
更新:我也尝试了最新版本:Juno Service Release 1.相同的结果。
Update2:我实际上注意到,对于一个全新的项目,错误不会发生,所以我应该能够最终确定导致此错误的设置。到目前为止,我无法识别任何内容,没有定义(非内置)符号,路径看起来也很好。
答案 0 :(得分:2)
从头开始重新创建项目修复了问题。看来该项目是由以前版本的eclipse创建的,可能会导致问题。由于.project和.cproject中的大量更改,无法确定具体原因。