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!");
#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 assert | ( | expression | ) |
| expression | Expression to test for. |
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).