名前付き要件: DefaultInsertable
提供: cppreference.com
その型のインスタンスが与えられたアロケータによってその場でデフォルト構築可能であることを指定します。
[編集] 要件
以下の内容を満たす場合、型 T
は T
と同一の value_type
を持つ Container X
に DefaultInsertable です。
A
|
アロケータの型 |
m
|
A 型の左辺値
|
p
|
コンテナによって準備された T* 型のポインタ
|
が与えられたとき、以下の式が well-formed でなければなりません。 ただし X::allocator_type
は std::allocator_traits<A>::rebind_alloc<T> と同一です。
std::allocator_traits<A>::construct(m, p);
この項は、 X
がアロケータ対応でない場合、アロケータオブジェクトを作成する必要がないことと std::allocator のユーザ定義の特殊化が実体化されないことを除いて、 A
が std::allocator<T> である��のように定義されます。
[編集] ノート
デフォルトでは、これは ::new((void*)p) T() によって行われたかのように、配置 new を呼びます (つまり p
の指すオブジェクトを値初期化します)。 値初期化が望ましくない場合、例えば、オブジェクトが非クラス型であり、ゼロクリアが必要でない場合は、 カスタムな Allocator::construct を提供することによってそれを回避できます。
[編集] 関連項目
DefaultConstructible | |
CopyInsertable | |
MoveInsertable | |
EmplaceConstructible | |
Erasable |