Eclipse CDT 解析器对 C++11 的支持

Eclipse CDT parser support for C++11?

本文关键字:C++11 支持 CDT Eclipse      更新时间:2023-10-16

我在Linux上使用Eclipse 3.7.2和CDT 8.0.2。 如何配置 CDT 以识别 c++11 语法,特别是override? 目前,解析器在指示的行上标记虚假错误。 构建完成没有错误,因为我在编译器命令行中包含 -std=c++11。

class foo
{
public:
    foo(){}
    virtual ~foo(){}
    virtual void func(){}
};
class bar : public foo
{
public:
    bar(){}
    virtual ~bar(){}
    virtual void func() override {} // <--- parser incorrectly flags syntax error
};
int main()
{
    bar my_bar;
    return 0;
}

我在Eclipse维基和这里尝试了这些说明,但没有成功。 同样,我只需要编辑器的解析器来识别c ++ 11,实际构建就可以了。

要修复C++11语法突出显示,请转到:

项目属性 --> C/C++ 常规 -->路径和符号 -->符号 --> GNU C++

并覆盖符号(即添加新符号):

__cplusplus

有价值

201103L

确保在项目设置中启用了索引器(C/C++常规 -->索引器

然后重新索引(项目 --> C/C++ 索引 --> 重建

如果问题仍然存在,请再次重新索引。它现在应该可以工作了。

您只能在项目"属性/预处理器包含/CDT 用户设置"中手动定义一个没有解析器内容的override宏。

当我安装 eclipse 的开发版本时,这个问题为我解决了:

日食月神 4.4 CDT 8.4