#pragma once #include #include #include template [[nodiscard]] Result make(Args... args) { T* const result = (T*)TRY(malloc_impl(sizeof(T))); new (result) T(args...); return result; } template [[nodiscard]] Result make_array(usize count) { T* const result = (T*)TRY(calloc_impl(count, sizeof(T))); new (result) T[count]; return result; } template void destroy(T* item) { delete item; } template void destroy_array(T* item) { delete[] item; }