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