Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-12-02 03:16:07 +02:00
commit 8d3749cc6a
14 changed files with 651 additions and 0 deletions

26
src/Util.h Normal file
View File

@@ -0,0 +1,26 @@
#pragma once
#include <string_view>
using namespace std::string_view_literals;
template<typename F> struct privDefer {
F f;
privDefer(F f)
: f(f)
{
}
~privDefer() { f(); }
};
template<typename F> privDefer<F> defer_func(F f) { return privDefer<F>(f); }
#define DEFER_1(x, y) x##y
#define DEFER_2(x, y) DEFER_1(x, y)
#define DEFER_3(x) DEFER_2(x, __COUNTER__)
#define defer(code) auto DEFER_3(_defer_) = defer_func([&]() { code; })
#if defined(_MSC_VER)
# define ALIGN(a) __declspec(align(a))
#else
# define ALIGN(a) __attribute__((aligned(a)))
#endif