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语法?
编辑:看起来Indexer是正确的选择 - 我无法使Indexer按预期工作。
在Windows 7上我使用的是MinGW。
我打开提供商并点击&#34; CDT内置编译器设置MinGW&#34;在哪里我添加-std=c++14
。因此,在我点击apply后,整个字符串为${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}" -std=c++14
,然后我使用Project-&gt; Index-&gt; 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的大部分内容大部分都适用于我的版本。
答案 0 :(得分:2)
问题似乎是尚未添加对C ++ 14的支持。
收集所有C ++ 14问题的 Here is a bugreport。
取决于列出其他错误报告的部分。其中特别提及Binary literals (N3472)
,Single-quotation-mark as digit separator (N3781)
的错误451086。
所以看起来这个问题已经知道,将来会在某个时候得到解决。