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

时间:2014-08-28 15:42:04

标签: c c11

我想在源文件中检测所使用的编译器是否支持static_assert。

1 个答案:

答案 0 :(得分:11)

在c11中,static_assertassert.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