Statyczna asercja (ang. static assert) (lub asercja czasu kompilacji) to konstrukcja języka C++, której celem jest weryfikacja zadanego warunku podczas kompilacji. Stosouje się podobnie jak makro/instrukcję assert() z biblioteki standardowej, można jednak tylko weryfikować takie warunki których wartość logiczną można wyznaczyć na etapie kompilacji. np.

assert( sizeof(int) == sizeof(long) ) ;

Przykład implementacji:

#define S_ASSERT(condition, message_string)\
typedef struct { int foo_tab[(condition)?1:-1]; }\
__s_assert_typedef_ ## message_string;


Literatura:
funus.net