C++ named requirements: EmplaceConstructible (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Especifica que un objeto del tipo puede ser construido a partir de un conjunto dado de argumentos en almacenamiento no inicializado mediante un asignador dado.
Requisitos
El tipo
T
es
EmplaceConstructible
en el
Container
X
(cuyo
value_type
es idéntico a
T
) a partir de los argumentos
args
si, dado
A
|
un tipo de asignador |
m
|
un lvalue de tipo
A
|
p
|
el puntero de tipo
T*
preparado por el contenedor
|
args
|
cero o más argumentos |
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 es consciente del 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 un objeto asignador, y las especializaciones definidas por el usuario de
std::allocator
no se instancian.
Notas
Aunque se requería que se utilizara un
construct
personalizado al construir elementos de
std::basic_string
hasta C++23, todas las implementaciones solo utilizaron el mecanismo predeterminado. El requisito se corrigió mediante
P1072R10
para coincidir con la práctica existente.
Véase también
| CopyInsertable | |
| MoveInsertable |