std::allocator_traits::construct
De cppreference.com
< cpp | memory | allocator traits
Definido en el archivo de encabezado <memory> | ||
template<class T, class... Args> staticvoid construct( Alloc& a, T* p, Args&&... args); | (desde C++11) (hasta C++20) | |
template<class T, class... Args> staticconstexprvoid construct( Alloc& a, T* p, Args&&... args); | (desde C++20) | |
Si es posible, construye un objeto de tipo T
en el almacenamiento no inicializado asignado al que apunta p
, llamando a a.construct(p, std::forward<Args>(args)...)
Si lo anterior no es posible (por ejemplo, Alloc
no tiene la función miembro construct()
), entonces llama a
::new(static_cast<void*>(p)) T(std::forward<Args>(args)...) | (hasta C++20) |
std::construct_at(p, std::forward<Args>(args)...) | (desde C++20) |
Contenido |
[editar]Parámetros
a | - | Asignador a usar para la construcción. |
p | - | Puntero al almacenamiento no inicializado en el que se construirá un objeto T . |
args... | - | Los argumentos de constructor a pasar a a.construct() o a new de ubicación(hasta C++20)std::construct_at()(desde C++20). |
[editar]Valor de retorno
(Ninguno)
[editar]Notas
Los contenedores de la biblioteca estándar utilizan esta función al insertar, copiar o mover elementos.
Debido a que esta función proporciona el retorno automático a new
de ubicación, la función miembro construct()
es un requerimiento Allocator opcional desde C++11.
[editar]Véase también
Funciones de asignación. (función) | |
(hasta C++20) | Construye un objeto en almacenamiento asignado. (función miembro pública de std::allocator ) |
(C++20) | Crea un objeto en una dirección dada (plantilla de función) |