Share via


cache_suballoc Class

 

The latest version of this topic can be found at 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

Parameter Description
Sz The number of elements in the array to be allocated.

Remarks

The cache_suballoc template class 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

cache_suballoc Constructs an object of type cache_suballoc.

Member Functions

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

Parameter Description
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

Parameter Description
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>