Eclipse无法解析用宏声明的字段

时间:2013-02-26 20:49:25

标签: c++ eclipse eclipse-cdt

我最近开始深入研究一个开源项目的代码,该项目主要是用C ++编写的。我在Ubuntu 12.10中使用Eclipse 3.8。

问题: 由于用于将字段声明与头文件分开的特别复杂的约定,日食将字段错误地标记为未解析。

someclass.h

class SomeClass
{
public:
    #define MACRO_CLASS_PARAM(Name) SomeType m_##Name;
    #include "fields.h"
    #undef MACRO_CLASS_PARAM
};

fields.h

MACRO_CLASS_PARAM(Field1)
MACRO_CLASS_PARAM(Field2)
...

现在在cpp文件中,如果我想做instanceOfSomeClass.Field1之类的事情,Eclipse会将其标记为错误,“Field'Field1'无法解析”。

问题:有没有办法让Eclipse正确处理这种情况?

1 个答案:

答案 0 :(得分:2)

无法正确处理不属于全局范围的#include语句是Eclipse的索引器中的long-standing deficiency

你可以做些什么:

  • 修改代码以避免此模式。一旦文本标题包含模型被C ++模块取代,它就会无效。
  • 将此缺陷的修复程序提供给Eclipse CDT。
  • 使用可以解析此模式的其他IDE。 (我不知道我头顶的一个,但我也没有花很多时间看。)