2025-07-10 13:29:03 +03:30
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <logger/logger.hpp>
|
|
|
|
|
2025-07-11 00:05:48 +03:30
|
|
|
namespace lt {
|
2025-07-10 13:29:03 +03:30
|
|
|
|
|
|
|
struct FailedAssertion: std::exception
|
|
|
|
{
|
2025-07-11 01:55:46 +03:30
|
|
|
FailedAssertion(const char *file, int line)
|
|
|
|
{
|
|
|
|
log_crt("Assertion failed in: {} (line {})", file, line);
|
|
|
|
}
|
2025-07-10 13:29:03 +03:30
|
|
|
};
|
|
|
|
|
2025-07-11 00:24:44 +03:30
|
|
|
#define lt_assert(x, ...) \
|
|
|
|
{ \
|
|
|
|
if (!(x)) \
|
|
|
|
{ \
|
|
|
|
log_crt(__VA_ARGS__); \
|
2025-07-11 00:05:48 +03:30
|
|
|
throw ::lt::FailedAssertion(__FILE__, __LINE__); \
|
2025-07-11 00:24:44 +03:30
|
|
|
} \
|
2025-07-10 13:29:03 +03:30
|
|
|
}
|
|
|
|
|
2025-07-11 00:05:48 +03:30
|
|
|
} // namespace lt
|