Luna/luna/include/luna/Alloc.h
apio a021e7a309
All checks were successful
continuous-integration/drone/push Build is passing
Move make and destroy to luna
2022-12-06 16:41:22 +01:00

28 lines
525 B
C++

#pragma once
#include <luna/PlacementNew.h>
#include <luna/Result.h>
#include <luna/SafeArithmetic.h>
template <typename T> Result<T*> make()
{
T* const result = new T;
if (!result) return err(ENOMEM);
return result;
}
template <typename T> Result<T*> make_array(usize count)
{
T* const result = new T[count];
if (!result) return err(ENOMEM);
return result;
}
template <typename T> void destroy(T* item)
{
delete item;
}
template <typename T> void destroy_array(T* item)
{
delete[] item;
}