table of contents
std::pointer_traits::pointer_to(3) | C++ Standard Libary | std::pointer_traits::pointer_to(3) |
NAME¶
std::pointer_traits::pointer_to - std::pointer_traits::pointer_to
Synopsis¶
Defined in header
<memory>
static pointer (since C++11)
pointer_to( (1) (member of pointer_traits<Ptr>
element_type& r ); specialization)
static pointer (since C++11)
pointer_to( (until C++20)
element_type& r ) (member of
noexcept; pointer_traits<T*>
(2) specialization)
static constexpr (since C++20)
pointer (member of
pointer_to( pointer_traits<T*>
element_type& r ) specialization)
noexcept;
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¶
addressof obtains actual address of an object, even if the &
(C++11) operator is overloaded
(function template)
address obtains the address of an object, even if operator& is
(until C++20) overloaded
(public member function of std::allocator<T>)
to_address obtains a raw pointer from a fancy pointer (inverse of
[static] (C++20)(optional) pointer_to)
(public static member function)
to_address obtains a raw pointer from a pointer-like type
(C++20) (function template)
2024.06.10 | http://cppreference.com |