cache_suballoc Class
Defines a block allocator that allocates and deallocates memory blocks of a single size.
Syntax
template <std::size_t Sz, size_t Nelts = 20>
class cache_suballoc
Parameters
Sz
The number of elements in the array to be allocated.
Remarks
The cache_suballoc class template stores deallocated memory blocks in a free list with unbounded length, using freelist<sizeof(Type), max_unbounded>
, and suballocates memory blocks from a larger chunk allocated with operator new when the free list is empty.
Each chunk holds Sz * Nelts
bytes of usable memory and the data that operator new and operator delete require. Allocated chunks are never freed.
Constructors
Constructor | Description |
---|---|
cache_suballoc | Constructs an object of type cache_suballoc . |
Member functions
Member function | Description |
---|---|
allocate | Allocates a block of memory. |
deallocate | Frees a specified number of objects from storage beginning at a specified position. |
Requirements
Header: <allocators>
Namespace: stdext
cache_suballoc::allocate
Allocates a block of memory.
void *allocate(std::size_t count);
Parameters
count
The number of elements in the array to be allocated.
Return Value
A pointer to the allocated object.
Remarks
cache_suballoc::cache_suballoc
Constructs an object of type cache_suballoc
.
cache_suballoc();
Remarks
cache_suballoc::deallocate
Frees a specified number of objects from storage beginning at a specified position.
void deallocate(void* ptr, std::size_t count);
Parameters
ptr
A pointer to the first object to be deallocated from storage.
count
The number of objects to be deallocated from storage.