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
};

成员

Typedef

名称 描述
typedef T2 difference_type 如果 Ptr::difference_type 类型存在,则类型 T2 为此类型,否则为 ptrdiff_t。 如果 Ptr 是原始指针,则类型为 ptrdiff_t
typedef T1 element_type 如果 Ptr::element_type 类型存在,则类型 T1 为此类型,否则为 Ty。 如果 Ptr 是原始指针,则类型为 Ty
typedef Ptr pointer 类型为 Ptr

结构

名称 描述
rebind 尝试将基础指针类型转换为指定类型。

方法

名称 描述
pointer_to 将任意引用转换为 Ptr 类的对象。

pointer_to

存在 Ptr::pointer_to(obj) 时,则为返回该函数的静态方法。 否则,无法将任意引用转换为 Ptr 类的对象。 如果 Ptr 是原始指针,则此方法将返回 addressof(obj)

static pointer pointer_to(element_type& obj);