3#include <Foundation/Containers/Bitfield.h>
4#include <Foundation/Memory/LargeBlockAllocator.h>
15template <
typename T, plUInt32 BlockSizeInByte, plBlockStorageType::Enum StorageType>
22 const T& operator*()
const;
23 const T* operator->()
const;
25 operator const T*()
const;
37 T& CurrentElement()
const;
40 plUInt32 m_uiCurrentIndex;
41 plUInt32 m_uiEndIndex;
64 void Delete(T* pObject);
65 void Delete(T* pObject, T*& out_pMovedObject);
67 plUInt32 GetCount()
const;
68 Iterator GetIterator(plUInt32 uiStartIndex = 0, plUInt32 uiCount = plInvalidIndex);
69 ConstIterator GetIterator(plUInt32 uiStartIndex = 0, plUInt32 uiCount = plInvalidIndex)
const;
78 plUInt32 m_uiCount = 0;
80 plUInt32 m_uiFreelistStart = plInvalidIndex;
85#include <Foundation/Memory/Implementation/BlockStorage_inl.h>
Base class for all memory allocators.
Definition Allocator.h:23
Definition BlockStorage.h:20
Definition BlockStorage.h:45
Definition BlockStorage.h:17
Definition DynamicArray.h:81
A block allocator which can only allocates blocks of memory at once.
Definition LargeBlockAllocator.h:40
Definition BlockStorage.h:7
Type traits.
Definition TypeTraits.h:12