Reputation: 219
I want to detect, in source file, if the compiler used supports static_assert
.
Upvotes: 8
Views: 2898
Reputation: 145839
In c11, static_assert
is an assert.h
macro that expands to _Static_assert
.
You can just use:
#include <assert.h>
#if defined(static_assert)
// static_assert macro is defined
#endif
Note that some compilers (e.g., IAR) also have a static_assert
keyword extension even if they don't support C11.
As mentioned in the comments you can also check for c11:
#if (__STDC_VERSION >= 201112L)
// it is c11, static_assert is defined when assert.h is included
#endif
Upvotes: 15