From 46944ec98688e962e94dcfcf426215f252bf2a87 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Fri, 3 Jan 2025 12:13:34 +0100 Subject: Start work on status --- asl/allocator.hpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'asl/allocator.hpp') diff --git a/asl/allocator.hpp b/asl/allocator.hpp index 5f8f9b6..265378b 100644 --- a/asl/allocator.hpp +++ b/asl/allocator.hpp @@ -2,6 +2,7 @@ #include "asl/layout.hpp" #include "asl/meta.hpp" +#include "asl/memory.hpp" namespace asl { @@ -28,4 +29,30 @@ static_assert(allocator); using DefaultAllocator = GlobalHeap; +template +T* alloc_new(allocator auto& a, auto&&... args) +{ + void* ptr = a.alloc(layout::of()); + return construct_at(ptr, ASL_FWD(args)...); +} + +template +void alloc_delete(allocator auto& a, T* ptr) +{ + destroy(ptr); + a.dealloc(ptr, layout::of()); +} + +template +constexpr T* alloc_new_default(auto&&... args) +{ + return alloc_new(DefaultAllocator{}, ASL_FWD(args)...); +} + +template +void alloc_delete_default(T* ptr) +{ + alloc_delete(DefaultAllocator{}, ptr); +} + } // namespace asl -- cgit