【问题标题】:C++14 Syntax in Eclipse CDT compiles but marked as syntax error (indexer)Eclipse CDT 中的 C++14 语法编译但标记为语法错误(索引器)
【发布时间】:2017-04-01 05:04:29
【问题描述】:

Eclipse CDT 给我一个有效 C++14 语法的语法错误。 一切都可以编译和运行,但语法高亮被破坏了。

我正在运行 MinGW 和 Eclipse。 C++14 程序编译并执行,但语法高亮/语法检查不正确。

这是我的源代码:

#include <iostream>
auto main() -> int
{
    //Binary Literals C++14 with Digit separators C++14
    auto seven = int{0b0000'0111};

    std::cout << seven << std::endl;
    std::cout << __cplusplus << std::endl;
    return int{0};
}

这是输出/构建日志。 您可以看到我的编译器设置
(-D__GXX_EXPERIMENTAL_CXX0X__ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++14) 以及其中的突出显示。

我需要设置什么以便语法检测允许 C++14 语法?

编辑:看起来索引器是正确的选择 - 我无法使索引器按预期工作。

在 Windows 7 上,我使用的是 MinGW。 我打开 Providers 并单击“CDT Built-In Compiler Settings MinGW”,在其中添加-std=c++14。所以整个字符串是${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}" -std=c++14 在我点击应用之后我使用 Project->Index->​​rebuild 希望消除我的错误。语法错误仍然存​​在。

这基本上就是索引器在the FAQ to get C++11 recognized 中提到的内容。

我安装了最新的 MinGW 版本。当我打电话给g++ --version 时,我得到:g++ (GCC) 5.3.0 作为回应。 There is no manual for 5.3 但我认为 5.4 的大部分内容对我的版本大多有效。

【问题讨论】:

  • 当您将鼠标悬停在突出显示的行上时,您会看到什么消息?
  • 好吧,我自己认为它只是“语法错误”,而不是更详细的东西。
  • @PeterSW:是的 - 它实际上只是说Syntax Error
  • 将鼠标悬停在它上面并按 F2,然后按左下角的小图标将我发送到注释首选项,这表明它来自 C/C++ 索引器。也许您可以调整索引器的“内置编译器设置”,如上一篇文章所述:eclipse.org/forums/index.php/t/1070790
  • @PeterSW 还没有为我工作 - 但我明天会重试。我发现了一个类似 c++11 的错误报告,我认为你正在做某事。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=471621

标签: eclipse c++14 syntax-highlighting eclipse-cdt


【解决方案1】:

问题好像还没有添加对C++14的支持。

Here is a bugreport 收集所有 C++14 问题。 有一个依赖部分列出了其他错误报告。其中特别提到了Binary literals (N3472)Single-quotation-mark as digit separator (N3781)的bug451086

所以这个问题似乎是已知的,并且会在未来的某个时候得到解决。

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2011-03-22
    • 2011-08-16
    • 2012-04-19
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多