pointer_traits 構造体
allocator_traits
型のオブジェクトが、ポインター型 Ptr
を持つアロケーターを記述するために必要とする情報を提供します。
構文
template <class Ptr>
struct pointer_traits;
解説
Ptr には Ty *
型の生のポインターまたは次のプロパティを持つクラスを指定できます。
struct Ptr
{ // describes a pointer type usable by allocators
typedef Ptr pointer;
typedef T1 element_type; // optional
typedef T2 difference_type; // optional
template <class Other>
using rebind = typename Ptr<Other, Rest...>; // optional
static pointer pointer_to(element_type& obj); // optional
};
メンバー
Typedefs
名前 | 説明 |
---|---|
typedef T2 difference_type |
T2 型は、その型が存在する場合は Ptr::difference_type 、それ以外の場合は ptrdiff_t です。 Ptr が生のポインターの場合、型は ptrdiff_t です。 |
typedef T1 element_type |
T1 型は、その型が存在する場合は Ptr::element_type 、それ以外の場合は Ty です。 Ptr が生のポインターの場合、型は Ty です。 |
typedef Ptr pointer |
種類は Ptr です。 |
構造
名前 | 説明 |
---|---|
rebind |
基になるポインター型を指定された型に変換しようとします。 |
メソッド
Name | 説明 |
---|---|
pointer_to | 任意の参照をクラス Ptr のオブジェクトに変換します。 |
pointer_to
その関数が存在する場合に Ptr::pointer_to(obj)
を返す静的メソッド。 それ以外の場合は、任意の参照をクラス Ptr
のオブジェクトに変換できません。 Ptr
が生のポインターの場合、このメソッドは addressof(obj)
を返します。
static pointer pointer_to(element_type& obj);