Edit

Share via


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.

Remarks

See also

<allocators>