Eclipse CDT无法在STL容器中的元素上解析方法
Eclipse CDT cannot parse methods on elements in STL containers
我正在使用cdt的eclipse juno使用自定义makefile开发我的C 项目。我还在使用C 11个功能,我必须与Eclipse的解析器一起使用SO。
的建议。问题是Eclipse无法解析STL容器元素上访问的方法或字段。例如:
mainapp.h
typedef struct _PlayerCalibrationData {
[...]
std::string getSamplesStr()
{
[...]
}
} PlayerCalibrationData;
std::vector<MainApp::PlayerCalibrationData> m_calibrationData;
mainapp.cpp
m_calibrationData[0].getSamplesStr();
getSamplesStr()
将被下划线并标记为错误,并带有消息"方法'getSamplesttr'无法解决"。
不管我是从eclipse还是从命令行调用它。
另外,当我键入m_calibrationData.
时,所有通过内容辅助弹出的向量方法(即,Eclipse不是一个没有找到向量的问题),但是一旦我通过[]
或at()
访问元素,内容辅助协助就安静了手动输入的任何内容都标记为错误。
这不起作用是正常的吗?如果是,是否有一种方法可以关闭专门针对基于模板的容器的辅助/更正?
编辑
我现在也尝试禁用C 11支持,如果我这样做,问题就会消失 - 但是当然,C 11类型和语法都无法识别。
编辑2
我导入了第二个项目,输入了完全相同的设置,并且为此项目,解析作品。唯一的区别是项目布局(Makefiles的不同位置)。但是,即使我删除并重新登录第一个项目,它仍然行不通。
这对我有用:
"您的项目名称" ->右键单击 ->属性:
c/c 常规 ->预处理器包括路径,宏等。->切换到名为"提供者"的选项卡:
-
用于"配置"选择" repares"(然后是"调试")
-
关闭所有提供商,只需选择" CDT GCC内置编译器设置"
-
取消选中"共享项目(全球提供商)之间的共享设置条目"
-
在"获取编译器规格的命令:" add" -std = c 11中,没有引号(也可以与报价一起使用)
-
命中并关闭选项
-
重建索引
这在我的两个杂物,在家和工作中都适合我Win7 X64,最新的官方日食与CDTMingw-W64 GCC 4.7.2来自SourceForge上的Mingwbuilds项目
- 数组元素打印的递归方法
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- 有什么方法可以将元素添加到列表中,如图所示?
- 在向量中查找大于 0(或通常为 k)的最小元素的最佳方法是什么?
- C++将所有元素从矢量复制到地图/unordered_map的最佳方法
- 在C++中更改结构内部元素的方法?
- 通过作为指向 C++ 函数的指针传递来访问 std::array 元素的正确方法是什么?
- 有没有更快的方法可以在 std::vector 中插入元素
- 返回向量元素的 l 值的正确方法是什么?
- 按升序打印矢量的所有元素直到它为空而没有重复项的最有效方法是什么?
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- 如何在不迭代的情况下对数组中的每个元素调用方法
- 是否有更有效的方法来检查元素是否在给定的区间内
- 这种获取模板参数包中最后一个元素的方法是否有隐藏的开销?
- 将__m256的奇怪元素提取到__m128中的有效(在锐龙上)方法?
- 为什么 memcpy() 是一种将元素添加到 'std::map' 的方法?
- 从长(且合理)稀疏向量中选择随机元素的最有效方法是什么?
- 如何使用返回第 n 个元素的方法创建元组
- 带有移除任何元素方法的c++堆
- 如何在带有input的map元素方法上使用std::for_each