std::pointer_traits<Ptr>:: pointer_to

From cppreference.com
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)



std::pointer_traits
Member functions
pointer_traits::pointer_to
(C++11)
(C++20) (optional)
Defined in header <memory>
static pointer
pointer_to ( element_type & r ) ;
(1) (since C++11)
(member of pointer_traits<Ptr> specialization)
(2)
static pointer
pointer_to ( element_type & r ) noexcept ;
(since C++11)
(until C++20)
(member of pointer_traits<T*> specialization)
static constexpr pointer
pointer_to ( element_type & r ) noexcept ;
(since C++20)
(member of pointer_traits<T*> specialization)

Constructs a dereferenceable pointer or pointer-like object ( "fancy pointer" ) to its argument.

1) The version of this function in the non-specialized std::pointer_traits template simply calls Ptr :: pointer_to ( r ) , and if Ptr does not provide a static member function pointer_to , instantiation of this function is a compile-time error.
2) The version of this function in the specialization of std::pointer_traits for pointer types returns std:: addressof ( r ) .

Parameters

r - reference to an object of type element_type & , except if element_type is void , in which case the type of r is unspecified

Return value

A dereferenceable pointer to r , of the type pointer_traits <> :: pointer .

Exceptions

1) Unspecified (typically same as Ptr :: pointer_to ).

Notes

The Boost.Intrusive library version of this function returns pointer ( std:: addressof ( r ) ) if Ptr :: pointer_to does not exist.

See also

(C++11)
obtains actual address of an object, even if the & operator is overloaded
(function template)
(until C++20)
obtains the address of an object, even if operator & is overloaded
(public member function of std::allocator<T> )
[static] (C++20) (optional)
obtains a raw pointer from a fancy pointer (inverse of pointer_to )
(public static member function)
(C++20)
obtains a raw pointer from a pointer-like type
(function template)