std::experimental::pmr:: resource_adaptor, std::pmr::experimental:: resource_adaptor
|
定義済みヘッダー
<experimental/memory_resource>
|
||
|
template
<
class
Alloc
>
using
resource_adaptor
=
/*resource-adaptor-imp*/
<
|
(ライブラリファンダメンタルTS) | |
|
template
<
class
Alloc
>
class /*resource-adaptor-imp*/ : public memory_resource ; // 説明専用 |
(ライブラリファンダメンタルTS) | |
エイリアステンプレート
resource_adaptor
は、アロケータ型
Alloc
を
memory_resource
インターフェースで適合させます。アロケータは実際に適合される前に(
resource-adaptor-imp
クラステンプレートを使用して)
char
値型に再バインドされるため、同じアロケータテンプレートの特殊化を適合させると、元々アロケータテンプレートがどの値型でインスタンス化されていたかに関わらず、常に同じ型が得られます。
|
|
(library fundamentals TS)
(until library fundamentals TS v3) |
|
|
(library fundamentals TS v3) |
resource-adaptor-imp
は以下に説明するメンバを持つクラステンプレートです。名称
resource-adaptor-imp
は説明専用であり、規範的ではありません。
Allocator
要件を満たすことに加えて、
Alloc
は以下の要件も追加で満たさなければなりません:
- std:: allocator_traits < Alloc > :: pointer は Alloc :: value_type * と同一でなければならない。
- std:: allocator_traits < Alloc > :: const_pointer は Alloc :: value_type const * と同一でなければならない。
- std:: allocator_traits < Alloc > :: void_pointer は void * と同一でなければならない。
- std:: allocator_traits < Alloc > :: const_const_pointer は void const * と同一でなければならない。
resource-adaptor-imp のメンバ型
| メンバー型 | 定義 |
allocator_type
|
Alloc
|
resource-adaptor-imp のメンバー関数
resource-adaptor-imp :: resource-adaptor-imp
|
/*resource-adaptor-imp*/
(
)
=
default
;
|
(1) | (library fundamentals TS) |
|
/*resource-adaptor-imp*/
(
const
/*resource-adaptor-imp*/
&
other
)
= default ; |
(2) | (library fundamentals TS) |
|
/*resource-adaptor-imp*/
(
/*resource-adaptor-imp*/
&&
other
)
= default ; |
(3) | (library fundamentals TS) |
|
explicit
/*resource-adaptor-imp*/
(
const
Alloc
&
a2
)
;
|
(4) | (library fundamentals TS) |
|
explicit
/*resource-adaptor-imp*/
(
Alloc
&&
a2
)
;
|
(5) | (library fundamentals TS) |
other
によってラップされたアロケータからラップされたアロケータをコピー構築します。
other
によってラップされたアロケータからラップされたアロケータをムーブ構築します。
a2
でラップされたアロケータを初期化します。
パラメータ
| other | - |
コピーまたはムーブ元の別の
resource-adaptor-imp
オブジェクト
|
| a2 | - |
コピーまたはムーブ元の別の
Alloc
オブジェクト
|
resource-adaptor-imp :: get_allocator
|
allocator_type get_allocator
(
)
const
;
|
(library fundamentals TS) | |
ラップされたアロケータのコピーを返します。
resource-adaptor-imp :: operator=
|
/*resource-adaptor-imp*/
&
operator
=
(
const
/*resource-adaptor-imp*/
&
other
)
= default ; |
(library fundamentals TS) | |
デフォルト化されたコピー代入演算子。
other
のラップされたアロケータをコピー代入します。
resource-adaptor-imp :: do_allocate
|
protected
:
virtual void * do_allocate ( std:: size_t bytes, std:: size_t alignment ) ; |
(library fundamentals TS) | |
ラップされたアロケータの
allocate
メンバー関数を使用してメモリを割り当てます。
resource-adaptor-imp :: do_deallocate
|
protected
:
virtual void do_deallocate ( void * p, std:: size_t bytes, std:: size_t alignment ) ; |
(library fundamentals TS) | |
p
が指すストレージを、ラップされたアロケータの
deallocate
メンバ関数を使用して解放します。
p
は、ラップされたアロケータと等価比較されるアロケータの
allocate
メンバ関数を使用して割り当てられたものでなければならず、その後で解放されていないものでなければなりません。
resource-adaptor-imp :: do_is_equal
|
protected
:
virtual bool do_is_equal ( const memory_resource & other ) const noexcept ; |
(ライブラリ基盤 TS) | |
p
を
dynamic_cast
<
const
/*resource-adaptor-imp*/
*
>
(
&
other
)
とする。
p
がヌルポインタ値の場合、
false
を返す。それ以外の場合、
*
p
と
*
this
がラップするアロケータを
operator
==
を用いて比較した結果を返す。