我在 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/