std::pointer_traits<Ptr>::to_address

From cppreference.com
< cpp‎ | memory‎ | pointer traits
Memory management library
(exposition only*)
Uninitialized memory algorithms
(C++17)
(C++17)
(C++17)
(C++20)
Constrained uninitialized
memory algorithms
(C++20)
C Library

Allocators
(C++11)
(C++11)
Memory resources
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)
Uninitialized storage
(until C++20*)
(until C++20*)
(until C++20*)
Explicit lifetime management
std::pointer_traits
Member functions
pointer_traits::to_address
(C++20)(optional)
Defined in header <memory>
static element_type* to_address( pointer p ) noexcept;
(since C++20)
(optional member of program-defined specialization)

Constructs a raw pointer that references the same object as its pointer-like ("fancy pointer") argument.

This function, if defined, is the inverse of pointer_to, and exists as the customization point to be called by std::to_address

Parameters

p - fancy pointer/pointer-like object

Return value

A raw pointer of the type element_type* that references the same memory location as the argument p

See also

[static]
obtains a dereferenceable pointer to its argument
(public static member function)
(C++20)
obtains a raw pointer from a pointer-like type
(function template)