我已经使用MinGW作为编译器在C ++ 11中编程,而Eclipse现在作为IDE使用了一段时间,而且它通常都没有失败。然而,有一件事让我有一段时间的问题,所以我想我会在这里问一下这个问题。
每当我尝试定义用户定义的文字时,Eclipse都会将其标记为黄色,并显示错误消息" Syntax Error
" - 并且还将强调对所述文字的任何使用。尽管如此,它还是可以正常编译。
我尝试解决方案:
乍一看,它看起来似乎需要重建索引,或者它可能无法识别它在c ++ 11中进行编译 - 但事实并非如此。我不仅拥有编译器标志-std=c++11
,而且我还将Eclipse中的内置编译器设置设置为C ++ 11。另外,它会毫无疑问地编译所有其他C ++ 11表达式,它似乎只是文字的一个问题
我的第二个想法是,MinGW可能没有实现足够的G ++版本来处理用户定义的文字。但是,正在运行g++ --version
表示我正在运行版本4.8.1,并且已经在4.7中添加了它们
我的最后一点想法是CDT eclipse插件可能已经过时了,但似乎没有任何新版本可用
所以基本上,我很难过。
编辑好但在编辑器中加下划线的一个例子是:
constexpr float operator"" _deg ( float rad ){
return rad * 180 / 3.1415926;
}
这不是一个巨大的问题,因为它编译,但我讨厌看到错误的错误/警告。
供参考,我的规格如下:
Eclipse Version : Kepler Service Release 2
CDT Version : 8.5.0.201409172108
MinGW G++ Version: 4.8.1
由于我没有看到任何与我类似的其他问题,我认为这是我的问题 - 所以我希望有人在这里提出建议如何解决这个问题。
答案 0 :(得分:1)
您需要启用CDT does to recognize C++11 features。如果你这样做,那可能是CDT扫描仪中的一个错误,你应该try to report a bug