<assert.h>: Diagnostics

Compile-time assert

C++ offers a compile-time built-in assert macro:

void static_assert(bool expression);
void static_assert(bool expression, const char*message);

It can be used like a function but also in declaration areas. A typical scenario is checking size of structures:

struct A{
 int a;
 char b;
};

static_assert(sizeof(A)==3, "Wrong size of struct A!");

Detailed Description

#include <assert.h>

This header file defines a debugging aid.

As there is no standard error output stream available for many applications using this library, the generation of a printable error message is not enabled by default. These messages will only be generated if the application defines the macro

__ASSERT_USE_STDERR

before including the <assert.h> header file. By default, only abort() will be called to halt the application.


Defines

#define assert(expression)


Define Documentation

#define assert ( expression   ) 

Parameters:
expression Expression to test for.
The assert() macro tests the given expression and if it is false, the calling process is terminated. A diagnostic message is written to stderr and the function abort() is called, effectively terminating the program.

If expression is true, the assert() macro does nothing.

The assert() macro may be removed at compile time by defining NDEBUG as a macro (e.g., by using the compiler option -DNDEBUG).