All checks were successful
Build (Arch Linux) / build (push) Successful in 3m10s
26 lines
947 B
C++
26 lines
947 B
C++
#pragma once
|
|
|
|
#include <cstdlib>
|
|
#include <print>
|
|
#include <stacktrace>
|
|
#include <string>
|
|
|
|
namespace kuiper
|
|
{
|
|
|
|
#define KUIPER_ASSERT(cond) \
|
|
if (!(cond)) { \
|
|
std::println(stderr, "Assertion failed at: {}", __PRETTY_FUNCTION__); \
|
|
std::abort(); \
|
|
}
|
|
|
|
#define KUIPER_ASSERT_STACKTRACE(cond) \
|
|
if (!(cond)) { \
|
|
const auto trace = std::stacktrace::current(); \
|
|
std::println(stderr, "Assertion failed at: {}", __PRETTY_FUNCTION__); \
|
|
std::println(stderr, "{}", std::to_string(trace)); \
|
|
std::abort(); \
|
|
}
|
|
|
|
} // namespace kuiper
|