Структура 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 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 |
Пытается преобразовать базовый указатель в указанный тип. |
Методы
Имя | Описание |
---|---|
pointer_to | Преобразует произвольную ссылку в объект класса Ptr . |
pointer_to
Статический метод, возвращающий Ptr::pointer_to(obj)
, если эта функция существует. В противном случае невозможно преобразовать произвольную ссылку на объект класса Ptr
. Если Ptr
является необработанной ссылкой, этот метод возвращает addressof(obj)
.
static pointer pointer_to(element_type& obj);