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