provides a macro for documenting C++ program assertions and a mechanism
for disabling the assertion checks.
#define assert(E) see below
The contents are the same as the C standard library header
except that a macro named static_assert
is not defined.
See also: ISO C 7.2.
An expression assert(E)
is a constant subexpression, if
NDEBUG is defined at the point where assert
is last defined or redefined, or
E contextually converted to bool
is a constant subexpression that evaluates to the value true.