C++ named requirements: EmplaceConstructible (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指定された型のオブジェクトが、未初期化のストレージにおいて、与えられたアロケータを使用して指定された引数セットから構築可能であることを指定します。
要件
型
T
は、引数
args
から
EmplaceConstructible
である(
Container
X
の
value_type
が
T
と同一である場合)、与えられた
A
|
アロケータ型 |
m
|
型
A
の左辺値
|
p
|
コンテナによって準備された型
T*
のポインタ
|
args
|
0個以上の引数 |
where
X::allocator_type
is identical to
std::
allocator_traits
<
A
>
::
rebind_alloc
<
T
>
,
以下の式は適切に形成されています:
std::allocator_traits<A>::construct(m, p, args);
X
がアロケータ対応でないか、あるいは
std::basic_string
の特殊化である場合、この用語は
A
が
std::allocator<T>
であるかのように定義されます。ただし、アロケータオブジェクトの作成は不要であり、
std::allocator
のユーザー定義特殊化はインスタンス化されません。
注記
C++23までは
construct
のカスタマイズが
std::basic_string
の要素構築時に要求されていたが、すべての実装はデフォルトのメカニズムのみを使用していた。この要求は既存の実装に合わせて
P1072R10
によって修正された。
関連項目
| CopyInsertable | |
| MoveInsertable |