cache_freelist Class
Defines a block allocator that allocates and deallocates memory blocks of a single size.
Syntax
template <std::size_t Sz, class Max>
class cache_freelist
Parameters
Sz
The number of elements in the array to be allocated.
Max
The max class representing the maximum size of the free list. This can be max_fixed_size, max_none, max_unbounded, or max_variable_size.
Remarks
The cache_freelist class template maintains a free list of memory blocks of size Sz. When the free list is full it uses operator delete to deallocate memory blocks. When the free list is empty it uses operator new to allocate new memory blocks. The maximum size of the free list is determined by the class max class passed in the Max parameter.
Each memory block holds Sz bytes of usable memory and the data that operator new and operator delete require.
Constructors
Constructor | Description |
---|---|
cache_freelist | Constructs an object of type cache_freelist . |
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_freelist::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_freelist::cache_freelist
Constructs an object of type cache_freelist
.
cache_freelist();
Remarks
cache_freelist::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.