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 内置编译器设置 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/