Eclipse CDT 将 static_assert(cond) 突出显示为语法错误
Eclipse CDT highlights static_assert(cond) as syntax error
Eclipse CDT抱怨以下内容在语法上是错误的,尽管它与g++-7 -std=c++17
一起编译得很好:
static_assert(std::is_pod<T>::value);
虽然它不会抱怨以下内容:
static_assert(std::is_pod<T>::value, "not a POD");
我意识到 C++17 之前的static_assert
需要第二个消息参数。 我很好奇 Eclipse 是否可以配置为识别第一种形式?(解决方法当然是使用 C++11 表单。
附带说明一下,g++ 7.1 对这两种形式都是可以的,即使使用-std=c++11
也是如此。
谢谢!
Eclipse CDT 还没有任何 C++17 支持,因此它无法识别这种形式的static_assert
。
可以通过在代码中定义以下宏来解决此问题:
#define static_assert(cond) static_assert(cond, "")
如果您的编译器反对这样做,您可以将其置于__CDT_PARSER__
宏上,以便只有 CDT 才能看到它,而不是编译器:
#ifdef __CDT_PARSER__
#define static_assert(cond) static_assert(cond, "")
#endif
如果您希望在不修改源文件的情况下应用此解决方法,则还可以在Project Properties | C/C++ General | Preprocessor Include Paths, Macros etc. | GNU C++ | CDT User Setting Entries
中定义此宏。
相关文章:
- 显示错误输出的简单数组排序程序
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- Clion显示错误,但可以使用Cmake成功构建代码
- 代码使用向量成功运行,但使用数组显示错误
- SDL 映像:无法打开映像,仅显示错误消息
- 为什么将指针重新分配给 1D 数组的 char 时显示错误,但 2D 数组工作正常?
- 与clang++一起使用的VS代码在构建良好的C++文件中显示错误
- 编译器没有显示错误,但我没有得到任何输出.怎么了?
- PPM 颜色显示错误
- 当我选择大于 720 的矩阵大小时,程序退出并显示错误代码.可能是什么原因?
- is_permutation方法从 #include<algorithm> 显示错误的输出
- 为什么使用与父级声明的 std::function 在与子级一起使用时会显示错误?
- 我的代码厨师提交显示错误的结果
- 显示错误"std_lib_facilities.h"
- 为什么C++显示错误的数字?
- Android (ART) 崩溃并显示错误 JNI 在应用程序中检测到错误:jstring 是无效的本地引用
- 这是我的 .h 文件的一些错误,当我在其中包含我的类模板时,它显示 [错误] 未终止 #ifndef
- c++ IF 语句执行,但添加 ELSE 会显示错误
- 内核.cpp在制作 kernel.o 时显示错误和 Makefile 错误
- C++代码编译,但在 Zorin OS 上运行时显示错误