19 General utilities library [utilities]

19.10 Memory [memory]

19.10.4 Pointer conversion [pointer.conversion]

template<class Ptr> auto to_address(const Ptr& p) noexcept;
Returns: pointer_­traits<Ptr>​::​to_­address(p) if that expression is well-formed (see [pointer.traits.optmem]), otherwise to_­address(p.operator->()).
template<class T> constexpr T* to_address(T* p) noexcept;
Requires: T is not a function type.
Otherwise the program is ill-formed.
Returns: p.