std:: allocator_traits
From cppreference.net
|
ヘッダーで定義
<memory>
|
||
|
template
<
class
Alloc
>
struct allocator_traits ; |
(C++11 以降) | |
allocator_traits
クラステンプレートは、
Allocator
s
の様々なプロパティにアクセスする標準化された方法を提供します。
標準コンテナおよびその他の標準ライブラリコンポーネントは、このテンプレートを通じてアロケータにアクセスします。
|
任意のクラス型をアロケータとして使用することが可能です。ただし、ユーザー提供の
|
(C++23まで) |
|
|
(C++23以降) |
デフォルトの、特殊化されていない
std::allocator_traits
は以下のメンバーを含みます:
目次 |
メンバー型
| 型 | 定義 |
allocator_type
|
Alloc
|
value_type
|
Alloc::value_type
|
pointer
|
Alloc::pointer
が存在する場合はそれ、それ以外の場合は
value_type*
|
const_pointer
|
Alloc::const_pointer
が存在する場合はそれ、それ以外の場合は
std::
pointer_traits
<
pointer
>
::
rebind
<
const
value_type
>
|
void_pointer
|
Alloc::void_pointer
が存在する場合はそれ、それ以外の場合は
std::
pointer_traits
<
pointer
>
::
rebind
<
void
>
|
const_void_pointer
|
Alloc::const_void_pointer
が存在する場合はそれ、それ以外の場合は
std::
pointer_traits
<
pointer
>
::
rebind
<
const
void
>
|
difference_type
|
Alloc::difference_type
が存在する場合はそれ、それ以外の場合は
std::
pointer_traits
<
pointer
>
::
difference_type
|
size_type
|
Alloc::size_type
が存在する場合はそれ、それ以外の場合は
std::
make_unsigned
<
difference_type
>
::
type
|
propagate_on_container_copy_assignment
|
Alloc::propagate_on_container_copy_assignment
が存在する場合はそれ、それ以外の場合は
std::false_type
|
propagate_on_container_move_assignment
|
Alloc::propagate_on_container_move_assignment
が存在する場合はそれ、それ以外の場合は
std::false_type
|
propagate_on_container_swap
|
Alloc::propagate_on_container_swap
が存在する場合はそれ、それ以外の場合は
std::false_type
|
is_always_equal
|
Alloc::is_always_equal
が存在する場合はそれ、それ以外の場合は
std::
is_empty
<
Alloc
>
::
type
|
メンバーエイリアステンプレート
| 型 | 定義 |
rebind_alloc<T>
|
Alloc::rebind<T>::other
が存在する場合、それを使用。存在しない場合、
SomeAllocator<T, Args>
を使用(ただし、この
Alloc
が
SomeAllocator
<
U, Args
>
の形式である場合)。ここで
Args
は0個以上の
型引数
|
rebind_traits<T>
|
std :: allocator_traits < rebind_alloc < T >> |
メンバー関数
|
[static]
|
アロケータを使用して未初期化のストレージを割り当てる
(public static member function) |
|
[static]
(C++23)
|
アロケータを使用して要求されたサイズ以上のストレージを割り当てる
(public static member function) |
|
[static]
|
アロケータを使用してストレージを解放する
(public static member function) |
|
[static]
|
割り当てられたストレージ内にオブジェクトを構築する
(function template) |
|
[static]
|
割り当てられたストレージに格納されたオブジェクトを破棄する
(function template) |
|
[static]
|
アロケータがサポートする最大オブジェクトサイズを返す
(public static member function) |
|
標準コンテナのコピー後に使用するアロケータを取得する
(public static member function) |
欠陥報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2108 | C++11 | アロケータがステートレスであることを示す方法がなかった |
is_always_equal
が提供された
|
関連項目
|
(C++11)
|
アロケータを使用するコンテナ; 関連する特性(例:
propagate_on_container_swap
)の使用方法
(名前付き要件) |
|
デフォルトアロケータ
(クラステンプレート) |
|
|
(C++11)
|
多階層コンテナのための多階層アロケータを実装する
(クラステンプレート) |
|
(C++11)
|
ポインタ様の型に関する情報を提供する
(クラステンプレート) |