class
#include <slang/util/BumpAllocator.h>
BumpAllocator BumpAllocator - Fast O(1) allocator.
Allocates items sequentially in memory, with underlying memory allocated in blocks as needed. Individual items cannot be deallocated; the entire thing must be destroyed to release the memory.
Derived classes
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
-
template<typename T>class TypedBumpAllocator
- A strongly-typed version of the BumpAllocator, which has the additional behavior of calling destructors on all elements when the allocator itself is destructed.
- class Compilation
- A centralized location for creating and caching symbols.
Public functions
-
template<typename T, typename... Args>auto emplace(Args && ... args) -> T*
- Construct a new item using the allocator.
-
auto allocate(size_
t size, size_ t alignment) -> byte* - Allocate size bytes of memory with the given alignment.
-
template<typename T>auto copyFrom(std::
span<const T> src) -> std:: span<T> - Copies the contents of the given span into a new memory region allocated and owned by this allocator and returns a span pointing to it.
- void steal(BumpAllocator&& other)
- Steals ownership of all of the memory contents of the given allocator.
Function documentation
template<typename T, typename... Args>
T* slang:: BumpAllocator:: emplace(Args && ... args)
Construct a new item using the allocator.
NOTE: the type of object being created must be trivially destructible, since the allocator won't run destructors when freeing memory.
void slang:: BumpAllocator:: steal(BumpAllocator&& other)
Steals ownership of all of the memory contents of the given allocator.
The other allocator will be in a moved-from state after the call.