asge::mem::ArenaAllocator
Owning arena allocator built on top of LinearAllocator.
#include <LinearAllocator.hpp>Inherits from asge::mem::LinearAllocator.
Inheritance
classDiagram
class N1["asge::mem::ArenaAllocator"]
class N2["asge::mem::LinearAllocator"]
N2 <|-- N1
click N1 href "classasge_1_1mem_1_1ArenaAllocator.html"
click N2 href "classasge_1_1mem_1_1LinearAllocator.html"
Collaboration
classDiagram
class N1["asge::mem::ArenaAllocator"]
class N2["asge::mem::LinearAllocator"]
N2 <|-- N1
click N1 href "classasge_1_1mem_1_1ArenaAllocator.html"
click N2 href "classasge_1_1mem_1_1LinearAllocator.html"
Internally allocates a heap buffer of the requested size and passes it to the parent LinearAllocator. Unlike LinearAllocator, ArenaAllocator owns its storage and releases it automatically on destruction. All LinearAllocator operations (Alloc, AllocOne, AllocArray, GetMarker, Rewind, Reset) are available through inheritance.
Private Attributes
Public Member Functions
#
ArenaAllocator(size_type inSize)#
ArenaAllocator(ArenaAllocator const &)=delete#
ArenaAllocator & operator=(ArenaAllocator const &)=delete#
ArenaAllocator(ArenaAllocator &&)=default#
ArenaAllocator & operator=(ArenaAllocator &&)=default#
~ArenaAllocator()=defaultPublic Types
#
using size_type = std::size_t#
using marker_type = Marker#
using pointer_type = std::byte *