Namespaces
Variants

std::experimental::pmr:: resource_adaptor, std::pmr::experimental:: resource_adaptor

From cppreference.net
定義済みヘッダー <experimental/memory_resource>
template < class Alloc >

using resource_adaptor = /*resource-adaptor-imp*/ <
typename std:: allocator_traits < Alloc > ::

template rebind_alloc < char >> ;
(ライブラリファンダメンタルTS)
template < class Alloc >
class /*resource-adaptor-imp*/ : public memory_resource ; // 説明専用
(ライブラリファンダメンタルTS)

エイリアステンプレート resource_adaptor は、アロケータ型 Alloc memory_resource インターフェースで適合させます。アロケータは実際に適合される前に( resource-adaptor-imp クラステンプレートを使用して) char 値型に再バインドされるため、同じアロケータテンプレートの特殊化を適合させると、元々アロケータテンプレートがどの値型でインスタンス化されていたかに関わらず、常に同じ型が得られます。

resource_adaptor は名前空間 std::experimental::pmr で定義され、このページの基底型 memory_resorce std::experimental::pmr::memory_resource です。

(library fundamentals TS)
(until library fundamentals TS v3)

resource_adaptor は名前空間 std::pmr::experimental で定義され、このページの基底型 memory_resorce std::pmr::memory_resource です。

(library fundamentals TS v3)

resource-adaptor-imp は以下に説明するメンバを持つクラステンプレートです。名称 resource-adaptor-imp は説明専用であり、規範的ではありません。

Allocator 要件を満たすことに加えて、 Alloc は以下の要件も追加で満たさなければなりません:

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)
1) デフォルトコンストラクタ。ラップされたアロケータをデフォルト構築します。
2) コピーコンストラクタ。 other によってラップされたアロケータからラップされたアロケータをコピー構築します。
3) ムーブコンストラクタ。 other によってラップされたアロケータからラップされたアロケータをムーブ構築します。
4) a2 でラップされたアロケータを初期化します。
5) ラップされたアロケータを std :: move ( 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 == を用いて比較した結果を返す。