5#include "../Primitives.hpp"
12 template<
class T,
typename... Args>
13 static T*
New(Args... args)
15 T* obj =
static_cast<T*
>(
Alloc(
sizeof(T)));
16 return new (obj) T(args...);
22 return static_cast<T*
>(
Alloc(
sizeof(T) * amount));
27 static void Free(
void* address);
39 std::memset((
void*)address, value,
sizeof(T) * amount);
45 Set<T>(address, 0, amount);
51 if (objectPtr !=
nullptr)
59 static void Copy(T* source, T* destination,
uint32 elementCount = 1)
61 memcpy((
void*)destination, (
void*)source,
sizeof(T) * elementCount);
Definition MemoryManager.hpp:10
static void Copy(T *source, T *destination, uint32 elementCount=1)
Definition MemoryManager.hpp:59
static void Free(void *address)
Definition MemoryManager.cpp:8
static void Set(T *address, uint8 value, uint32 amount)
Definition MemoryManager.hpp:37
static T * Alloc(uint32 amount)
Definition MemoryManager.hpp:20
static void SafeDelete(T *&objectPtr)
Definition MemoryManager.hpp:49
static void Delete(T *address)
Definition MemoryManager.hpp:30
static void Zero(T *address, uint32 amount=1)
Definition MemoryManager.hpp:43
static T * New(Args... args)
Definition MemoryManager.hpp:13
uint32_t uint32
Definition Primitives.hpp:12
uint8_t uint8
Definition Primitives.hpp:6