Requisitos denominados de C++: EmplaceConstructible (desde C++11)
Especifica que un asignador determinado puede construir un objeto del tipo a partir de un conjunto determinado de argumentos en un almacenamiento no inicializado.
Requisitos
El tipo T es EmplaceConstructible en el Container X (cuyo value_type es idéntico a T) de los argumentos args si, dado
A
|
Un tipo asignador de memoria. |
m
|
Un l-valor de tipo A.
|
p
|
El puntero de tipo T* preparado por el contenedor.
|
args
|
zero or more arguments |
donde X::allocator_type es idéntico a std::allocator_traits<A>::rebind_alloc<T>,
la siguiente expresión está bien formada:
std::allocator_traits<A>::construct(m, p, args);
Si X no reconoce el asignador o es una especialización de std::basic_string, el término se define como si A fuera std::allocator <T>, excepto que no es necesario crear ningún objeto asignador y no se crean instancias de las especializaciones de std::allocator definidas por el usuario.
Notas
Aunque se requiere que se use construct personalizado al construir elementos de std::basic_string hasta C++ 23, todas las implementaciones solo usaban el mecanismo predeterminado. El requisito se corrige mediante P1072R10 para que coincida con la práctica existente.
Véase también
| CopyInsertable | |
| MoveInsertable |