We recommend using Visual Studio 2017

pointer_traits Struct

 

The latest version of this topic can be found at pointer_traits Struct.

Supplies information that is needed by an object of template class allocator_traits to describe an allocator with pointer type Ptr.

template <class Ptr>
struct pointer_traits;

Ptr can be a raw pointer of type Ty * or a class with the following properties.

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

Typedefs

NameDescription
typedef T2 difference_typeThe type T2 is Ptr::difference_type if that type exists, otherwise ptrdiff_t. If Ptr is a raw pointer, the type is ptrdiff_t.
typedef T1 element_typeThe type T1 is Ptr::element_type if that type exists, otherwise Ty. If Ptr is a raw pointer, the type is Ty.
typedef Ptr pointerThe type is Ptr.

Structs

NameDescription
pointer_traits::rebindAttempts to convert the underlying pointer type to a specified type.

Methods

NameDescription
pointer_traits::pointer_to MethodConverts an arbitrary reference to an object of class Ptr.

Header: <memory>

Namespace: std

Static method that returns Ptr::pointer_to(obj), if that function exists. Otherwise, it is not possible to convert an arbitrary reference to an object of class Ptr. If Ptr is a raw pointer, this method returns addressof(obj).

static pointer pointer_to(element_type& obj);

<memory>
allocator_traits Class

Show: