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