Memory management library
Punteros inteligentes (desde C++11)
Los punteros inteligentes permiten una gestión automática y segura frente a excepciones del ciclo de vida de los objetos.
|
Definido en el encabezado
<memory>
|
|
Categorías de punteros |
|
|
(C++11)
|
puntero inteligente con semántica de propiedad única de objetos
(plantilla de clase) |
|
(C++11)
|
puntero inteligente con semántica de propiedad compartida de objetos
(plantilla de clase) |
|
(C++11)
|
referencia débil a un objeto gestionado por
std::shared_ptr
(plantilla de clase) |
|
(obsoleto en C++11)
(eliminado en C++17)
|
puntero inteligente con semántica estricta de propiedad de objetos
(plantilla de clase) |
Clases auxiliares |
|
|
(C++11)
|
proporciona ordenación basada en propietario de tipos mixtos para punteros shared y weak
(plantilla de clase) |
|
(C++26)
|
proporciona hash basado en propietario para punteros shared y weak
(clase) |
|
(C++26)
|
proporciona comparaciones de igualdad basadas en propietario de tipos mixtos para punteros shared y weak
(clase) |
|
(C++11)
|
permite que un objeto cree un
shared_ptr
que haga referencia a sí mismo
(plantilla de clase) |
|
(C++11)
|
excepción lanzada al acceder a un
weak_ptr
que referencia un objeto ya destruido
(clase) |
|
(C++11)
|
eliminador predeterminado para
unique_ptr
(plantilla de clase) |
Adaptadores de punteros inteligentes (desde C++23) |
|
|
(C++23)
|
interopera con establecedores de punteros externos y restablece un puntero inteligente al destruirse
(plantilla de clase) |
|
(C++23)
|
crea un
out_ptr_t
con un puntero inteligente asociado y argumentos de restablecimiento
(plantilla de función) |
|
(C++23)
|
interopera con establecedores de punteros externos, obtiene el valor inicial del puntero desde un puntero inteligente y lo restablece al destruirse
(plantilla de clase) |
|
(C++23)
|
crea un
inout_ptr_t
con un puntero inteligente asociado y argumentos de restablecimiento
(plantilla de función) |
Asignadores
Los allocators son plantillas de clase que encapsulan la estrategia de asignación de memoria. Esto permite que los contenedores genéricos desacoplen la gestión de memoria de los datos en sí.
|
Definido en el encabezado
<memory>
|
|
|
el asignador por defecto
(plantilla de clase) |
|
|
(C++11)
|
proporciona información sobre tipos de asignadores
(plantilla de clase) |
|
(C++23)
|
registra la dirección y el tamaño real de almacenamiento asignado por
allocate_at_least
(plantilla de clase) |
|
(C++11)
|
una etiqueta utilizada para seleccionar constructores conscientes del asignador
(etiqueta) |
|
(C++11)
|
verifica si el tipo especificado soporta construcción uses-allocator
(plantilla de clase) |
|
(C++20)
|
prepara la lista de argumentos que coincide con el tipo de construcción uses-allocator requerido por el tipo dado
(plantilla de función) |
|
(C++20)
|
crea un objeto del tipo dado mediante construcción uses-allocator
(plantilla de función) |
|
crea un objeto del tipo dado en una ubicación de memoria específica mediante construcción uses-allocator
(plantilla de función) |
|
|
Definido en el encabezado
<scoped_allocator>
|
|
|
(C++11)
|
implementa asignador multinivel para contenedores multinivel
(plantilla de clase) |
|
Definido en el encabezado
<memory_resource>
|
|
|
Definido en el espacio de nombres
std::pmr
|
|
|
(C++17)
|
un asignador que soporta polimorfismo en tiempo de ejecución basado en el
std::pmr::memory_resource
con el que se construye
(plantilla de clase) |
Recursos de memoria (desde C++17)
Los recursos de memoria implementan estrategias de asignación de memoria que pueden ser utilizadas por std::pmr::polymorphic_allocator .
|
Definido en el encabezado
<memory_resource>
|
|
|
Definido en el espacio de nombres
std::pmr
|
|
|
(C++17)
|
una interfaz abstracta para clases que encapsulan recursos de memoria
(clase) |
|
(C++17)
|
retorna un
std::pmr::memory_resource
estático de ámbito de programa que utiliza el
operator new
global y el
operator delete
para asignar y liberar memoria
(función) |
|
(C++17)
|
retorna un
std::pmr::memory_resource
estático que no realiza asignaciones
(función) |
|
(C++17)
|
obtiene el
std::pmr::memory_resource
predeterminado
(función) |
|
(C++17)
|
establece el
std::pmr::memory_resource
predeterminado
(función) |
|
(C++17)
|
un conjunto de opciones de constructor para recursos de pool
(clase) |
|
(C++17)
|
un
std::pmr::memory_resource
seguro para hilos que gestiona asignaciones en pools de diferentes tamaños de bloque
(clase) |
|
(C++17)
|
un
std::pmr::memory_resource
no seguro para hilos que gestiona asignaciones en pools de diferentes tamaños de bloque
(clase) |
|
(C++17)
|
un
std::pmr::memory_resource
de propósito especial que libera la memoria asignada solo cuando se destruye el recurso
(clase) |
Algoritmos de memoria no inicializada
|
Definido en el encabezado
<memory>
|
|
|
copia un rango de objetos a un área de memoria no inicializada
(plantilla de función) |
|
|
(C++11)
|
copia un número de objetos a un área de memoria no inicializada
(plantilla de función) |
|
copia un objeto a un área de memoria no inicializada, definida por un rango
(plantilla de función) |
|
|
copia un objeto a un área de memoria no inicializada, definida por un inicio y un conteo
(plantilla de función) |
|
|
(C++17)
|
mueve un rango de objetos a un área de memoria no inicializada
(plantilla de función) |
|
(C++17)
|
mueve un número de objetos a un área de memoria no inicializada
(plantilla de función) |
|
(C++17)
|
construye objetos mediante
default-initialization
en un área de memoria no inicializada, definida por un rango
(plantilla de función) |
|
construye objetos mediante
default-initialization
en un área de memoria no inicializada, definida por un inicio y un conteo
(plantilla de función) |
|
|
(C++17)
|
construye objetos mediante
value-initialization
en un área de memoria no inicializada, definida por un rango
(plantilla de función) |
|
(C++17)
|
construye objetos mediante
value-initialization
en un área de memoria no inicializada, definida por un inicio y un conteo
(plantilla de función) |
|
(C++17)
|
destruye un objeto en una dirección dada
(plantilla de función) |
|
(C++17)
|
destruye un rango de objetos
(plantilla de función) |
|
(C++17)
|
destruye un número de objetos en un rango
(plantilla de función) |
|
(C++20)
|
crea un objeto en una dirección dada
(plantilla de función) |
Algoritmos de memoria no inicializada restringidos (desde C++20)
C++20 proporciona algoritmos de memoria no inicializada con restricciones que aceptan argumentos de rango o pares iterador-centinela.
|
Definido en el encabezado
<memory>
|
|
|
Definido en el espacio de nombres
std::ranges
|
|
|
especifica que algunas operaciones en iteradores, centinelas y rangos no lanzan excepciones
( concepto solo para exposición* ) |
|
|
(C++20)
|
copia un rango de objetos a un área de memoria no inicializada
(objeto función de algoritmo) |
|
(C++20)
|
copia un número de objetos a un área de memoria no inicializada
(objeto función de algoritmo) |
|
(C++20)
|
copia un objeto a un área de memoria no inicializada, definida por un rango
(objeto función de algoritmo) |
|
(C++20)
|
copia un objeto a un área de memoria no inicializada, definida por un inicio y un conteo
(objeto función de algoritmo) |
|
(C++20)
|
mueve un rango de objetos a un área de memoria no inicializada
(objeto función de algoritmo) |
|
(C++20)
|
mueve un número de objetos a un área de memoria no inicializada
(objeto función de algoritmo) |
|
construye objetos mediante
inicialización por defecto
en un área de memoria no inicializada, definida por un rango
(objeto función de algoritmo) |
|
|
construye objetos mediante
inicialización por defecto
en un área de memoria no inicializada, definida por un inicio y conteo
(objeto función de algoritmo) |
|
|
construye objetos mediante
inicialización por valor
en un área de memoria no inicializada, definida por un rango
(objeto función de algoritmo) |
|
|
construye objetos mediante
inicialización por valor
en un área de memoria no inicializada, definida por un inicio y un conteo
(objeto función de algoritmo) |
|
|
(C++20)
|
destruye un objeto en una dirección dada
(objeto función de algoritmo) |
|
(C++20)
|
destruye un rango de objetos
(objeto función de algoritmo) |
|
(C++20)
|
destruye un número de objetos en un rango
(objeto función de algoritmo) |
|
(C++20)
|
crea un objeto en una dirección dada
(objeto función de algoritmo) |
Gestión explícita del tiempo de vida (desde C++23)
|
Definido en el encabezado
<memory>
|
|
|
crea implícitamente objetos en el almacenamiento dado reutilizando la representación del objeto
(plantilla de función) |
|
Tipos para diseño de clases compuestas (desde C++26)
|
Definido en el encabezado
<memory>
|
|
|
(C++26)
|
un contenedor que contiene un objeto asignado dinámicamente con semántica de valor
(plantilla de clase) |
|
(C++26)
|
un contenedor polimórfico que contiene un objeto asignado dinámicamente con semántica de valor
(plantilla de clase) |
Misceláneos
|
Definido en el encabezado
<memory>
|
|
|
(C++11)
|
proporciona información sobre tipos similares a punteros
(plantilla de clase) |
|
(C++20)
|
obtiene un puntero crudo de un tipo similar a puntero
(plantilla de función) |
|
(C++11)
|
obtiene la dirección real de un objeto, incluso si el
operador
&
está sobrecargado
(plantilla de función) |
|
(C++11)
|
alinea un puntero en un búfer
(función) |
|
(C++20)
|
informa al compilador que un puntero está alineado
(plantilla de función) |
|
(C++26)
|
comprueba si el puntero apunta a un objeto cuya alineación tiene al menos el valor dado
(plantilla de función) |
Gestión de memoria de bajo nivel
Incluye por ejemplo operator new , operator delete , std::set_new_handler .
|
Definido en el encabezado
<new>
|
Gestión de memoria estilo C
Incluye por ejemplo std::malloc , std::free .
|
Definido en el encabezado
<cstdlib>
|
Almacenamiento no inicializado (hasta C++20)
Se proporcionan varias utilidades para crear y acceder a almacenamiento sin procesar.
|
Definido en el encabezado
<memory>
|
|
|
(obsoleto en C++17)
(eliminado en C++20)
|
un iterador que permite a los algoritmos estándar almacenar resultados en memoria no inicializada
(plantilla de clase) |
|
(obsoleto en C++17)
(eliminado en C++20)
|
obtiene almacenamiento no inicializado
(plantilla de función) |
|
(obsoleto en C++17)
(eliminado en C++20)
|
libera almacenamiento no inicializado
(plantilla de función) |
Soporte para recolector de basura (hasta C++23)
|
Definido en el encabezado
<memory>
|
|
|
(C++11)
(eliminado en C++23)
|
declara que un objeto no puede ser reciclado
(función) |
|
(C++11)
(eliminado en C++23)
|
declara que un objeto puede ser reciclado
(plantilla de función) |
|
(C++11)
(eliminado en C++23)
|
declara que un área de memoria no contiene punteros rastreables
(función) |
|
(C++11)
(eliminado en C++23)
|
cancela el efecto de
std::declare_no_pointers
(función) |
|
(C++11)
(eliminado en C++23)
|
enumera los modelos de seguridad de punteros
(enumeración) |
|
(C++11)
(eliminado en C++23)
|
retorna el modelo actual de seguridad de punteros
(función) |