Notice: Unexpected clearActionName after getActionName already called in /var/www/cppreference.com/public/includes/context/RequestContext.php on line 338
Requisitos denominados de C++: DefaultInsertable (desde C++11) - cppreference.com
Espacios de nombres
Variantes

Requisitos denominados de C++: DefaultInsertable (desde C++11)

De cppreference.com
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

Especifica que una instancia del tipo puede construirse por defecto en el sitio por un asignador de memoria dado.

Requisitos

El tipo T es DefaultInsertable en el contenedor X cuyo value_type es idéntico a T si, dados

A un tipo asignador de memoria
m un l-valor de tipo A
p un puntero de tipo T* preparado por el contenedor

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);

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 las especializaciones definidas por el usuario de std::allocator.

Notas

Por defecto, esto inicializa por valor el objeto, como si fuera ::new((void*)p) T() (hasta C++20)std::construct_at(p) (desde C++20). Si no es deseable la inicialización por valor, por ejemplo, si el objeto es de un tipo no clase y no se necesita iniciarlo a cero, se puede evitar proporcionando un Allocator::construct personalizado.

Aunque se requiere que se use una implementación de construct personalizada al construir elementos de std::basic_string hasta C++23, todas las implementaciones solo usaron el mecanismo por defecto. El requisito se corrige mediante P1072R10 para que coincida con la práctica existente.

Véase también

DefaultConstructible
CopyInsertable
MoveInsertable
EmplaceConstructible
Erasable