...
The static_assert()
macro accepts a constant expression e
which is evaluated as the first operand to the conditional operator. If e
evaluates to 0nonzero, an array type with a dimension of 1 is defined; otherwise an array type with a dimension of -1 is defined. Because it is illegal invalid to declare an array with a negative dimension, the resulting type definition will be flagged by the compiler. The name of the array is used to indicate the location of the failed assertion.
...