The previous code didn't compile, because static_assert() must end with
a semicolon. To fix, wrap it in a block, similar to the C code.
#define StaticAssertStmt(condition, errmessage) \
static_assert(condition, errmessage)
#define StaticAssertExpr(condition, errmessage) \
- StaticAssertStmt(condition, errmessage)
+ ({ static_assert(condition, errmessage); })
#else
#define StaticAssertStmt(condition, errmessage) \
do { struct static_assert_struct { int static_assert_failure : (condition) ? 1 : -1; }; } while(0)