Draft 2002-02-20

<cassert>

The <cassert> header (from the C standard <assert.h> header) declares the assert macro. The <cassert> header is unique in that you can #include it multiple times to obtain different effects (depending on whether the NDEBUG macro is defined at the time of #include <cassert>).

assert macro

Syntax

void assert(int expression)

Description

The assert macro ensures the expression is true. If so, nothing happens, and execution continues normally. If the expression evaluates to zero, assert prints a message to the standard error file and calls abort. The format of the message is implementation-defined, but it includes a textual representation of expression, and the file name and line number where the assert call appears (that is, the value of the __FILE__ and __LINE__ macros).

See Also

abort function, throw keyword

NDEBUG macro

Syntax

#define NDEBUG
#include <cassert>

Description

The NDEBUG macro is not defined by <cassert> or anywhere else in the standard C++ library. Instead, you can define the macro before including the <cassert> header to disable the assert macro.

In one source file, you can define and undefine NDEBUG multiple times, each time followed by #include <cassert> to enable or disable the assert macro multiple times in the same source file.

See Also

assert macro