From cppreference.com
#define static_assert _Static_assert(since C11)
(removed in C23)This convenience macro expands to the keyword
.
Example
Run this code
#include<assert.h>intmain(void){static_assert(2+2==4,"2+2 isn't 4");// well-formedstatic_assert(sizeof(int)<sizeof(char),// compile-time error"this program requires that int is less than char");}Notes
Since C23,
is itself a keyword, which may also be a predefined macro, so
no longer provides it.
References
C23 standard (ISO/IEC 9899:2024):
7.2/3 Diagnostics <assert.h> (p: TBD)
C17 standard (ISO/IEC 9899:2018):
7.2/3 Diagnostics <assert.h> (p: 135)
C11 standard (ISO/IEC 9899:2011):
7.2/3 Diagnostics <assert.h> (p: 186)
See also