如何检测编译器是否支持static_assert?

前端之家收集整理的这篇文章主要介绍了如何检测编译器是否支持static_assert?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在源文件中检测所使用的编译器是否支持static_assert.

解决方法

在c11中,static_assert是一个assert.h宏,它扩展为_Static_assert.

你可以使用:

#include <assert.h>

#if defined(static_assert)
// static_assert macro is defined
#endif

请注意,某些编译器(例如,IAR)也具有static_assert关键字扩展名,即使它们不支持C11也是如此.

评论中所述,您还可以检查c11:

#if (__STDC_VERSION >= 201112L)
// it is c11,static_assert is defined when assert.h is included
#endif

猜你在找的C&C++相关文章