22 Diagnostics library [diagnostics]

22.3 Assertions [assertions]

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

22.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.

22.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.