【问题标题】:Eclipse CDT parser support for C++11?Eclipse CDT 解析器对 C++11 的支持?
【发布时间】:2012-11-27 18:49:44
【问题描述】:

我在 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,实际构建就可以了。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    __cplusplus
    

    有价值

    201103L
    

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

    然后重新索引(Project --> C/C++ Index --> Rebuild

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

    【讨论】:

    • 很好的解决方案,我把它放在源代码头文件的顶部,它工作了
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      Eclipse Luna 4.4 CDT 8.4

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 2012-06-12
        • 2012-05-31
        • 2012-08-05
        • 2013-06-12
        • 1970-01-01
        相关资源
        最近更新 更多