Peano
Loading...
Searching...
No Matches
assert.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdlib>
4#include <csignal>
5#include <cstdio>
6
7#define DEBUGGER {std::raise(SIGINT);}
8
9#define KILL(reason) { fprintf(stderr, "Error: %s\n %s:%d\n", reason, __FILE__, __LINE__); DEBUGGER std::exit(1); }
10
11#ifndef DNDEBUG
12#define ASSERT(cond, reason) if (!(cond)) [[unlikely]] KILL(reason);
13#undef assert
14#define assert(cond) ASSERT(cond, "Assert failed")
15#else
16#define ASSERT(cond, reason)
17#define assert(cond)
18#endif
19
20#define WARN(reason) { fprintf(stderr, "WARN: %s\n %s:%d\n", reason, __FILE__, __LINE__); }