【发布时间】: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