Eclipse无法解析用宏声明的字段 我最近开始深入研究开源项目的代码,它主要是用C++编写的。我正在Ubuntu 12.10中使用Eclipse3.8
问题: Eclipses错误地将字段标记为未解析,因为有一个特别复杂的约定用于将字段声明从头文件中分离出来 某个班级 fields.h 现在在cpp文件中,如果我想执行类似于Eclipse无法解析用宏声明的字段 我最近开始深入研究开源项目的代码,它主要是用C++编写的。我正在Ubuntu 12.10中使用Eclipse3.8,c++,eclipse,eclipse-cdt,C++,Eclipse,Eclipse Cdt,问题: Eclipses错误地将字段标记为未解析,因为有一个特别复杂的约定用于将字段声明从头文件中分离出来 某个班级 fields.h 现在在cpp文件中,如果我想执行类似于instanceOfSomeClass.Field1的操作,Eclipse将用“Field'Field1'无法解决”将其标记为错误 问题是:有没有办法让Eclipse正确处理这种情况 无法正确处理不在全局范围内的#include语句是Eclipse索引器中的一个问题 你可以做些什么: 修改代码以避免这种模式。当文本标题包含
instanceOfSomeClass.Field1的操作,Eclipse将用“Field'Field1'无法解决”将其标记为错误
问题是:有没有办法让Eclipse正确处理这种情况 无法正确处理不在全局范围内的#include
语句是Eclipse索引器中的一个问题
你可以做些什么:
- 修改代码以避免这种模式。当文本标题包含模型被C++模块取代时,它将是无效的。
- 为Eclipse CDT提供此缺陷的修复
- 使用可以解析此模式的其他IDE。(我不知道有哪一个是我脑海中的,但我也没有花太多时间去寻找。)
试试这个,我认为这不是同一个问题。我猜我的问题是分析器没有扩展包含的文件和宏,因此它看不到字段声明,因此认为它们不存在。不过,我确实提出了一些关于这个话题的建议,但这些建议都是无效的
class SomeClass
{
public:
#define MACRO_CLASS_PARAM(Name) SomeType m_##Name;
#include "fields.h"
#undef MACRO_CLASS_PARAM
};
MACRO_CLASS_PARAM(Field1)
MACRO_CLASS_PARAM(Field2)
...