max_variable_size Class

Describes a max class object that limits a freelist object to a maximum length that is roughly proportional to the number of allocated memory blocks.

Syntax

class max_variable_size

Constructors

Constructor Description
max_variable_size Constructs an object of type max_variable_size.

Member functions

Member function Description
allocated Increments the count of allocated memory blocks.
deallocated Decrements the count of allocated memory blocks.
full Returns a value that specifies whether more memory blocks should be added to the free list.
released Decrements the count of memory blocks on the free list.
saved Increments the count of memory blocks on the free list.

Requirements

Header: <allocators>

Namespace: stdext

max_variable_size::allocated

Increments the count of allocated memory blocks.

void allocated(std::size_t _Nx = 1);

Parameters

_Nx
The increment value.

Remarks

This member function adds _Nx to the stored value _Nallocs. This member function is called after each successful call by cache_freelist::allocate to operator new. The argument _Nx is the number of memory blocks in the chunk allocated by operator new.

max_variable_size::deallocated

Decrements the count of allocated memory blocks.

void deallocated(std::size_t _Nx = 1);

Parameters

_Nx
The increment value.

Remarks

The member function subtracts _Nx from the stored value _Nallocs. This member function is called after each call by cache_freelist::deallocate to operator delete. The argument _Nx is the number of memory blocks in the chunk deallocated by operator delete.

max_variable_size::full

Returns a value that specifies whether more memory blocks should be added to the free list.

bool full();

Return Value

true if _Nallocs / 16 + 16 <= _Nblocks.

Remarks

This member function is called by cache_freelist::deallocate. If the call returns true, deallocate puts the memory block on the free list; if it returns false, deallocate calls operator delete to deallocate the block.

max_variable_size::max_variable_size

Constructs an object of type max_variable_size.

max_variable_size();

Remarks

The constructor initializes the stored values _Nblocks and _Nallocs to zero.

max_variable_size::released

Decrements the count of memory blocks on the free list.

void released();

Remarks

This member function decrements the stored value _Nblocks. The released member function of the current max class is called by cache_freelist::allocate whenever it removes a memory block from the free list.

max_variable_size::saved

Increments the count of memory blocks on the free list.

void saved();

Remarks

This member function increments the stored value _Nblocks. This member function is called by cache_freelist::deallocate whenever it puts a memory block on the free list.

See also

<allocators>