Eclipse CDT解析器支持C ++ 11?

时间:2012-11-27 18:49:44

标签: c++ c++11 syntax-highlighting eclipse-cdt

我在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 wikihere上的路线,但没有成功。同样,我只需要编辑器的解析器来识别c ++ 11,实际构建就可以了。

3 个答案:

答案 0 :(得分:5)

要修复C ++ 11语法高亮显示,请转到:

项目属性 - &gt; C / C ++一般 - &gt;路径和符号 - &gt;符号 - &gt; GNU C ++

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

__cplusplus

有价值

201103L

确保在项目设置中启用了索引器( C / C ++ general - &gt; Indexer

然后重新索引(项目 - &gt; C / C ++索引 - &gt;重建

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

答案 1 :(得分:0)

您只能在项目“属性/预处理程序包含/ CDT用户设置”中为解析器手动定义override宏,而不包含任何内容。

答案 2 :(得分:0)

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

Eclipse Luna 4.4 CDT 8.4