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