28 lines
525 B
C++
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;
|
|
} |