std::pmr:: unsynchronized_pool_resource
From cppreference.net
C++
Memory management library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::pmr::unsynchronized_pool_resource
| Public member functions | ||||
| Protected member functions | ||||
|
Definido en el encabezado
<memory_resource>
|
||
|
class
unsynchronized_pool_resource
:
public
std::
pmr
::
memory_resource
;
|
(desde C++17) | |
La clase
std::pmr::unsynchronized_pool_resource
es una clase de recurso de memoria de propósito general con las siguientes propiedades:
-
Posee la memoria asignada y la libera al destruirse, incluso si
deallocateno ha sido llamado para algunos de los bloques asignados. - Consiste en una colección de pools que atienden solicitudes para diferentes tamaños de bloque. Cada pool gestiona una colección de chunks que luego se dividen en bloques de tamaño uniforme.
- Las llamadas a do_allocate se dirigen al pool que sirve los bloques más pequeños que pueden acomodar el tamaño solicitado.
- Agotar la memoria en el pool hace que la siguiente solicitud de asignación para ese pool asigne un chunk adicional de memoria del upstream allocator para reabastecer el pool. El tamaño del chunk obtenido aumenta geométricamente.
- Las solicitudes de asignación que exceden el tamaño de bloque más grande se atienden directamente desde el upstream allocator .
- El tamaño de bloque más grande y el tamaño máximo de chunk pueden ajustarse pasando una estructura std::pmr::pool_options a su constructor.
unsynchronized_pool_resource
no es seguro para hilos y no puede ser accedido desde múltiples hilos simultáneamente; use
synchronized_pool_resource
si se requiere acceso desde múltiples hilos.
Funciones miembro
construye un
unsynchronized_pool_resource
(función miembro pública) |
|
|
[virtual]
|
destruye un
unsynchronized_pool_resource
, liberando toda la memoria asignada
(función miembro pública virtual) |
|
operator=
[deleted]
|
el operador de asignación de copia está eliminado.
unsynchronized_pool_resource
no es asignable por copia
(función miembro pública) |
Funciones miembro públicas |
|
|
libera toda la memoria asignada
(función miembro pública) |
|
|
devuelve un puntero al recurso de memoria ascendente
(función miembro pública) |
|
|
devuelve las opciones que controlan el comportamiento de agrupación de este recurso
(función miembro pública) |
|
Funciones miembro protegidas |
|
|
[virtual]
|
asigna memoria
(función miembro protegida virtual) |
|
[virtual]
|
devuelve memoria al grupo
(función miembro protegida virtual) |
|
[virtual]
|
compara para igualdad con otro
std::pmr::memory_resource
(función miembro protegida virtual) |