名前付き要件: Erasable
提供: cppreference.com
その型のオブジェクトが与えられた Allocator によって破棄可能であることを指定します。
[編集] 要件
以下の内容を満たす場合、型 T は T と同一の value_type を持つ Container X から Erasable です。
A
|
アロケータの型 |
m
|
A 型の左辺値
|
p
|
コンテナによって準備される T* 型のポインタ
|
が与えられたとき、以下の式が well-formed でなければなりません。 ただし X::allocator_type は std::allocator_traits<A>::rebind_alloc<T> と同一です。
std::allocator_traits<A>::destroy(m, p);
この項は、アロケータ対応でない場合、アロケータオブジェクトを作成する必要がないことと std::allocator のユーザ定義の特殊化が実体化されないことを除いて、 A が std::allocator<T> であるかのように定義されます。
[編集] ノート
すべての標準ライブラリのコンテナはその要素の型が Erasable を満たすことを要求します。
デフォルトのアロケータでは、この要件は p->~T() の有効性と同等です。 アクセス可能なデストラクタを持つクラス型およびすべてのスカラー型を受理しますが、配列型、関数型、参照型および void を拒否します。
[編集] 関連項目
| CopyInsertable | |
| MoveInsertable | |
| EmplaceConstructible | |
| Destructible |

