Namespaces
Variants

std::pmr:: unsynchronized_pool_resource

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
pmr::unsynchronized_pool_resource
(C++17)

Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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 deallocate no 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)