Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.
Syntax
template <class Ptr>
struct pointer_traits;
Remarks
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
| Name | Description |
|---|---|
typedef T2 difference_type |
The 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_type |
The type T1 is Ptr::element_type if that type exists, otherwise Ty. If Ptr is a raw pointer, the type is Ty. |
typedef Ptr pointer |
The type is Ptr. |
Structs
| Name | Description |
|---|---|
pointer_traits::rebind |
Attempts to convert the underlying pointer type to a specified type. |
Methods
| Name | Description |
|---|---|
| pointer_traits::pointer_to Method | Converts an arbitrary reference to an object of class Ptr. |
Requirements
Header: <memory>
Namespace: std
pointer_traits::pointer_to Method
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);