Compartilhar via


Struct pointer_traits

Fornece informações que são necessárias a um objeto allocator_traits para descrever um alocador com o tipo de ponteiro Ptr.

Sintaxe

template <class Ptr>
    struct pointer_traits;

Comentários

Ptr pode ser um ponteiro bruto do tipo Ty * ou uma classe com as seguintes propriedades.

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

Membros

Typedefs

Nome Descrição
typedef T2 difference_type O tipo T2 é Ptr::difference_type se esse tipo de existir, caso contrário, ptrdiff_t. Se Ptr for um ponteiro bruto, o tipo será ptrdiff_t.
typedef T1 element_type O tipo T1 é Ptr::element_type se esse tipo de existir, caso contrário, Ty. Se Ptr for um ponteiro bruto, o tipo será Ty.
typedef Ptr pointer O tipo é Ptr.

Estruturas

Nome Descrição
rebind Tenta converter o tipo de ponteiro subjacente em um tipo especificado.

Métodos

Nome Descrição
pointer_to Converte uma referência arbitrária em um objeto da classe Ptr.

pointer_to

O método estático que retorna Ptr::pointer_to(obj), se essa função existir. Caso contrário, não é possível converter uma referência arbitrária para um objeto da classe Ptr. Se Ptr for um ponteiro bruto, esse método retornará addressof(obj).

static pointer pointer_to(element_type& obj);