19 Diagnostics library [diagnostics]

19.3 Assertions [assertions]

The header <cassert> provides a macro for documenting C++ program assertions and a mechanism for disabling the assertion checks.

19.3.1 Header <cassert> synopsis [cassert.syn]

#define assert(E) see below

The contents are the same as the C standard library header <assert.h>, except that a macro named static_assert is not defined.

See also: ISO C 7.2.

19.3.2 The assert macro [assertions.assert]

An expression assert(E) is a constant subexpression ([defns.const.subexpr]), if

  • NDEBUG is defined at the point where assert is last defined or redefined, or

  • E contextually converted to bool (Clause [conv]) is a constant subexpression that evaluates to the value true.