名前空間
変種
操作

名前付き要件: DefaultInsertable

提供: cppreference.com
< cpp‎ | named req
 
 
名前付き要件
基本
レイアウト
ライブラリ全体
コンテナ
コンテナの要素
DefaultInsertable
(C++11)
イテレータ
ストリーム入出力
乱数
並行処理
(C++11)

(C++11)
(C++11)
その他
 

その型のインスタンスが与えられたアロケータによってその場でデフォルト構築可能であることを指定します。

[編集] 要件

以下の内容を満たす場合、型 TT と同一の value_type を持つ Container XDefaultInsertable です。

A アロケータの型
m A 型の左辺値
p コンテナによって準備された T* 型のポインタ

が与えられたとき、以下の式が well-formed でなければなりません。 ただし X::allocator_typestd::allocator_traits<A>::rebind_alloc<T> と同一です。

std::allocator_traits<A>::construct(m, p);

この項は、 X がアロケータ対応でない場合、アロケータオブジェクトを作成する必要がないことと std::allocator のユーザ定義の特殊化が実体化されないことを除いて、 Astd::allocator<T> であるかのように定義されます。

[編集] ノート

デフォルトでは、これは ::new((void*)p) T() によって行われたかのように、配置 new を呼びます (つまり p の指すオブジェクトを値初期化します)。 値初期化が望ましくない場合、例えば、オブジェクトが非クラス型であり、ゼロクリアが必要でない場合は、 カスタムな Allocator::construct を提供することによってそれを回避できます。

[編集] 関連項目

DefaultConstructible
CopyInsertable
MoveInsertable
EmplaceConstructible
Erasable