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

时间:2014-11-25 18:32:08

标签: c++ eclipse c++11 mingw eclipse-cdt

我已经使用MinGW作为编译器在C ++ 11中编程,而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插件可能已经过时了,但似乎没有任何新版本可用

  4. 所以基本上,我很难过。

    编辑好但在编辑器中加下划线的一个例子是:

    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
    

    由于我没有看到任何与我类似的其他问题,我认为这是我的问题 - 所以我希望有人在这里提出建议如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您需要启用CDT does to recognize C++11 features。如果你这样做,那可能是CDT扫描仪中的一个错误,你应该try to report a bug