3#ifndef ENGINE_SHARED_MEMHEAP_H
4#define ENGINE_SHARED_MEMHEAP_H
35 void *
Allocate(
size_t Size,
size_t Alignment =
alignof(std::max_align_t));
38 template<
typename T,
typename... TArgs>
41 return new(
Allocate(
sizeof(T),
alignof(T))) T(std::forward<TArgs>(Args)...);
void Clear()
Definition memheap.cpp:64
T * Allocate(TArgs &&...Args)
Definition memheap.h:39
void * AllocateFromChunk(size_t Size, size_t Alignment)
Definition memheap.cpp:29
CHeap()
Definition memheap.cpp:46
void Reset()
Definition memheap.cpp:57
void NewChunk(size_t ChunkSize)
Definition memheap.cpp:12
~CHeap()
Definition memheap.cpp:52
void * Allocate(size_t Size, size_t Alignment=alignof(std::max_align_t))
Definition memheap.cpp:75
CChunk * m_pCurrent
Definition memheap.h:25
const char * StoreString(const char *pSrc)
Definition memheap.cpp:91
static constexpr size_t CHUNK_SIZE
Definition memheap.h:23
char * m_pCurrent
Definition memheap.h:15
char * m_pMemory
Definition memheap.h:14
char * m_pEnd
Definition memheap.h:16
CChunk * m_pNext
Definition memheap.h:17