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

标签 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 wiki 上的说明和 here没有成功。再说一次,我只需要编辑器的解析器来识别 c++11,实际构建就可以了。

最佳答案

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

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

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

__cplusplus

有值(value)

201103L

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

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

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

关于c++ - Eclipse CDT 解析器支持 C++11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591020/

相关文章:

c++ - 是否可以将多个名称放在一个字符串中?

c++ - 测试字符串是否代表 "yyyy-mm-dd"

c++ - 有没有办法将文字字符串放入 <char...> 模板中?

c++ - 为什么这个 c++ lambda 函数不能编译?

emacs - emacs 的 LESS 语法高亮显示

gcc - 如何在Qt Creator中为CMake项目启用c++ 11语法突出显示

c++ - 在任何类类型的模板方法中使用 new

c++ - 为什么只执行最后一个线程?

c++ - 将 for_each 与 std::unique_ptr 一起使用

css - 如何在 Sublime 3 中设置 scss 语法?