Поделиться через


Структура 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 Тип T2Ptr::difference_type, если этот тип существует, в противном случае — ptrdiff_t. Если Ptr является необработанным указателем, то тип — ptrdiff_t.
typedef T1 element_type Тип T1Ptr::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);