eclipse - Eclipse CDT 中的 C++14 语法可以编译但标记为语法错误(索引器)

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

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) 以及其中的突出显示内容。

enter image description here

我需要设置什么才能使语法检测允许 C++14 语法?

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

在 Windows 7 上我使用 MinGW。 我打开 Providers 并单击“CDT 内置编译器设置 MinGW”,在其中添加 -std=c++14。所以整个字符串是 ${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"-std=c++14 在我点击 apply 后,确定我使用 Project ->索引->重建希望消除我的错误。语法错误仍然存​​在。

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

我安装了最新的 MinGW 版本。当我调用 g++ --version 时,我得到: g++ (GCC) 5.3.0 作为响应。 There is no manual for 5.3但我认为 5.4 的大部分内容对于我的版本来说基本上是有效的。

最佳答案

问题似乎是还没有添加对C++14的支持。

Here is a bugreport收集所有 C++14 问题。 有一个依赖部分列出了其他错误报告。其中bug 451086其中特别提到二进制文字 (N3472)单引号作为数字分隔符 (N3781)

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

关于eclipse - Eclipse CDT 中的 C++14 语法可以编译但标记为语法错误(索引器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40658561/

相关文章:

c++ - 关于 lambda、函数指针的转换和私有(private)数据成员的可见性

printing - 如何从 Pharo/Squeak 打印 Smalltalk 代码?

regex - AvalonEdit:复制大型突出显示的文本文件需要很长时间

android - 在 Android 模拟器上运行 Android 移动应用程序

java - 为什么此代码会生成 "Potential resource leak"警告?

java - 使用 Eclipse 连接到 wamp 服务器的 IOException 错误?

javascript - 给定文件扩展名,如何为 Ace Editor 自动选择 "mode"

java - Spring Boot Maven - 无法将 Web 应用程序打包为可执行 jar/war

c++ - 为什么在 C++11/C++14 中有针对自动和大括号初始化器的特殊类型推导规则?

c++ - 带有类型检查的可变参数模板