bit::memory
Classes
ExtendedAllocator

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...
 

Detailed Description

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

the following expressions must be well-formed with the expected side-effects:

v = a.try_allocate( s, n, o )

a tries to allocate at least s bytes aligned to the boundary n, offset by o bytes.

The expression

a.try_allocate( s, n )

must be non-throwing, otherwise it is undefined behaviour.