2

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

4

3 回答 3

5

要修复 C++11 语法高亮,请访问:

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

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

__cplusplus

有价值

201103L

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

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

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

于 2014-07-08T09:38:53.113 回答
0

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

Eclipse Luna 4.4 CDT 8.4

于 2014-07-08T10:02:32.470 回答
0

override您只能在项目“Properties/Preprocessor Includes/CDT User Settings”中手动为解析器定义没有内容的宏。

于 2012-11-27T19:29:55.960 回答