【发布时间】:2018-04-16 12:39:33
【问题描述】:
我知道,屏幕截图不应该作为 MCVE 提供,但在这里我想指出错误。
将焦点移到包含文件中我看到了问题:
我以折叠所有非活动预处理器指令的方式设置了 Eclipse。因此,很明显 Eclipse 没有为预处理器#define __cplusplus 定义正确的值[-对于 Eclipse-非活动代码也有灰色背景,第 34 行]。
我正在使用 gcc 7.3 和 -std=c++17。
我缺少什么,如何将 __cplusplus 设置为正确的值?
这个小的 MCVE 当然可以编译。
技术数据:
面向 C/C++ 开发人员的 Eclipse IDE
版本:Oxygen.3a 版本 (4.7.3a)
版本号:20180405-1200
Eclipse 本身显然不支持 C++17,所以我必须在 Project -> Properties -> C/C++ Build 中进行设置-> 设置 -> GCC C++ 编译器 -> 方言 -> 其他方言标志 -std=c++17
【问题讨论】:
-
Eclipse 的解析器尚不支持 C++17 特性(并且有一些 C++14 特性它还不支持),所以如果
<variant>标头正在使用此类较新的特性,Eclipse 可能无法正确解析它。 -
@HighCommander4 是否至少有一个解决方法,比如我将这个
__cplusplus设置为201703L?现在,半源因此被标记为红色!有什么信息应该支持吗? -
@HighCommander4 我正在使用
@suppress指令。我想我可以忍受它。
标签: c++ eclipse eclipse-cdt variant