#ifndef __ASSERT_H #define _ASSERT_H 1 // https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/assert.h.html #include #ifdef NDEBUG #define assert(ignore)((void) 0) #else #define assert(expr) do { if (!(expr)) __assert_fail(#expr, __FILE__, __LINE__, __func__); } while (0) #endif __BEGIN_DECLS [[noreturn]] void __assert_fail(const char*, const char*, int, const char*); __END_DECLS #endif