繁体   English   中英

C ++用户定义文字的Eclipse / MinGW问题

[英]Eclipse/MinGW issue with C++ User-defined Literals

我已经在C ++ 11中使用MinGW作为编译器并使用Eclipse作为IDE进行了一段时间的编程,并且通常都没有失败。 但是,有一件事导致了我一段时间的问题,所以我想在这里给我一个机会。

每次我尝试定义用户定义的文字时,Eclipse都会用黄色下划线标出错误消息“ Syntax Error ”,并且还会在使用该文字时下划线。 尽管如此,它仍可以正确编译。

我的解决方案尝试:

  1. 乍一看,它看起来好像需要重建索引,或者它可能无法识别它是在c ++ 11中编译的,但是事实并非如此。 我不仅拥有编译器标志-std=c++11 ,而且还将Eclipse中的内置编译器设置设置为C ++ 11。 另外,它可以毫无问题地编译所有其他C ++ 11表达式,这似乎只是文字方面的问题

  2. 我的第二个想法是,MinGW可能没有实现足够的G ++版本来处理用户定义的文字。 但是,运行g++ --version显示我正在运行版本4.8.1,并且它们是在4.7中添加的。

  3. 我最后的想法是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

从我还没有看到任何其他类似我的问题的事实来看,我认为这是我的问题-所以我希望这里的人对如何解决这个问题提出建议。

您需要启用CDT才能识别C ++ 11功能 如果这样做,则可能是CDT扫描仪中的错误,应尝试报告错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM