ORIGINAL
|
Interface for other memory allocator implementations. More...
#include <allocator.h>
Public Types | |
using | propagate_on_container_copy_assignment = std::false_type |
No propagation on copy. | |
using | propagate_on_container_move_assignment = std::false_type |
No propagation on move. | |
using | propagate_on_container_swap = std::false_type |
No propagation on swap. | |
using | propagate_on_container_merge = std::false_type |
No propagation on merge. | |
template<typename O_TYPE > | |
using | rebind_alloc = DERIVED< O_TYPE > |
Rebinds allocator to different type. | |
Public Member Functions | |
constexpr | allocatorBase () |
Constructs a new allocatorBase instance. | |
virtual TYPE * | allocate (u_integer size)=0 |
Allocates raw memory. | |
virtual void | deallocate (TYPE *ptr, u_integer size)=0 |
Deallocates memory. | |
template<typename O_TYPE , typename... Args> | |
void | construct (O_TYPE *o_ptr, Args &&... args) |
Constructs an object in allocated memory. | |
virtual | ~allocatorBase ()=0 |
Virtual destructor. | |
Static Public Member Functions | |
template<typename O_TYPE > | |
static void | destroy (O_TYPE *o_ptr) |
Destroys an object without deallocating. | |
Interface for other memory allocator implementations.
TYPE | The type of objects to allocate |
DERIVED | CRTP template parameter for derived allocators |
Provides common interface and utilities for memory management:
Propagation traits:
Rebinds allocator to different type.
O_TYPE | New type to allocate |
|
constexpr |
Constructs a new allocatorBase instance.
Performs compile-time validation of the allocated type:
Allocates raw memory.
size | Number of elements to allocate |
Implemented in original::allocator< TYPE >, original::allocator< bool >, original::allocator< K_TYPE >, original::allocator< opts >, original::allocator< original::skipList::skipListNode * >, original::allocator< original::strongPtr< original::filter< TYPE > > >, original::allocator< original::strongPtr< original::transform< TYPE > > >, original::allocator< original::strongPtr< taskBase > >, original::allocator< original::thread >, original::allocator< priorityTask >, original::allocator< TYPE * >, and original::objPoolAllocator< TYPE >.
Constructs an object in allocated memory.
O_TYPE | Type of object to construct |
Args | Constructor argument types |
o_ptr | Pointer to allocated memory |
args | Arguments to forward to constructor |
|
pure virtual |
Deallocates memory.
ptr | Pointer to memory to free |
size | Number of elements originally allocated |
Implemented in original::allocator< K_TYPE >, original::allocator< opts >, original::allocator< original::skipList::skipListNode * >, original::allocator< original::strongPtr< original::filter< TYPE > > >, original::allocator< original::strongPtr< original::transform< TYPE > > >, original::allocator< original::strongPtr< taskBase > >, original::allocator< original::thread >, original::allocator< priorityTask >, original::allocator< TYPE * >, original::allocator< TYPE >, and original::objPoolAllocator< TYPE >.
|
static |
Destroys an object without deallocating.
O_TYPE | Type of object to destroy |
o_ptr | Pointer to object to destroy |