bit::memory
|
This concept defines the required interface and semantics expected of an extended allocator. More...
Classes | |
class | bit::memory::aligned_offset_allocator |
This stateless allocator performs all of its allocation calls using aligned memory invocations aligned to an offset. More... | |
class | bit::memory::bump_down_allocator |
An allocator that allocates memory in contiguous memory by 'bumping' the head pointer to lower memory address. More... | |
class | bit::memory::bump_down_lifo_allocator |
An allocator that allocates memory in contiguous memory by 'bumping' the head pointer to lower memory addresses. More... | |
class | bit::memory::bump_up_allocator |
An allocator that allocates memory in contiguous memory by 'bumping' the head pointer to higher memory addresses. More... | |
class | bit::memory::bump_up_lifo_allocator |
An allocator that allocates memory in contiguous memory by 'bumping' the head pointer to higher memory addresses. More... | |
class | bit::memory::null_allocator |
An allocator that only ever serves nullptr. More... | |
class | bit::memory::pool_allocator |
This allocator creates a pool of fixed-sized chunk entries for allocations. More... | |
class | bit::memory::stack_allocator< Size, Align > |
A stack-allocation strategy that allocates off of stack-memory. More... | |
This concept defines the required interface and semantics expected of an extended allocator.
An ExtendedAllocator
is also an Allocator
that provides extended functionality for tracking ownership, and providing the ability to offset the allocations alignment.
Requirements
For type A
to be ExtendedAllocator
, it must satisfy the above conditions as well as the following:
Provided
A
- an Allocator typea
- an instance of type A
s
- the size of an allocationn
- the alignment of the allocationo
- the offset for the alignmentv
- a void pointerthe following expressions must be well-formed with the expected side-effects:
a
tries to allocate at least s
bytes aligned to the boundary n
, offset by o
bytes.
The expression
must be non-throwing, otherwise it is undefined behaviour.