bit::memory
|
This concept defines the required interface and semantics expected of a block allocator. More...
Classes | |
class | bit::memory::aligned_block_allocator< DefaultBlockSize, BlockAlign, GrowthMultiplier > |
An allocator that allocates over-aligned memory. More... | |
class | bit::memory::block_allocator_reference |
A type erased view of allocators that satisfy the BlockAllocator concept. More... | |
class | bit::memory::malloc_block_allocator< DefaultBlockSize, GrowthMultiplier > |
A block allocator that wraps around raw calls to std::malloc and std::free. More... | |
class | bit::memory::new_block_allocator< DefaultBlockSize, GrowthMultiplier > |
A block allocator that wraps around calls to new and delete. More... | |
class | bit::memory::null_block_allocator |
A block allocator that only distributes null blocks. More... | |
class | bit::memory::policy_block_allocator< BlockAllocator, MemoryTagger, MemoryTracker, BasicLockable > |
This block allocator uses policies to modify the behaviour of the underlying type. More... | |
class | bit::memory::stack_block_allocator< BlockSize, Blocks, Align > |
An allocator with automatic storage reclamation. More... | |
class | bit::memory::static_block_allocator< BlockSize, Blocks, Align, Tag > |
This is a block allocator that distributes blocks of memory stored statically. More... | |
class | bit::memory::thread_local_block_allocator< BlockSize, Blocks, Align, Tag > |
This is a block allocator that distributes blocks of static memory that is local to the specific thread. More... | |
class | bit::memory::virtual_block_allocator< Pages, GrowthMultiplier > |
This block allocator is used for creating virtual memory blocks. More... | |
This concept defines the required interface and semantics expected of a block allocator.
The bit::memory
BlockAllocator concept is used to distribute memory blocks to allocators that can use them.
BlockAllocators are also used as upstream resources for StreamingAllocators.
The size of a memory_block returned by a BlockAllocator is fixed at construction time, and is not permitted to vary.
For type A
to be BlockAllocator
, it must satisfy the following:
Provided
A
- a BlockAllocator typea
- an instance of type A
b
- a memory_blockthe following expressions must be well-formed with the expected side-effects:
Allocates a memory_block
of implementation-specific size
Deallocates the specified block
s
contains the size of the next block to be allocated