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.