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

时间:2016-11-17 15:17:00

标签: 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语法?

编辑:看起来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的大部分内容大部分都适用于我的版本。

1 个答案:

答案 0 :(得分:2)

问题似乎是尚未添加对C ++ 14的支持。

收集所有C ++ 14问题的

Here is a bugreport。 取决于列出其他错误报告的部分。其中特别提及Binary literals (N3472)Single-quotation-mark as digit separator (N3781)的错误451086

所以看起来这个问题已经知道,将来会在某个时候得到解决。