17 constexpr explicit constexpr_ptr(
const from *ptr) noexcept : p(ptr) {}
19 constexpr to operator*()
const noexcept {
return static_cast<to
>(*p); }
43 constexpr constexpr_ptr &operator+=(std::ptrdiff_t n)
noexcept {
48 constexpr constexpr_ptr &operator-=(std::ptrdiff_t n)
noexcept {
53 constexpr constexpr_ptr operator+(std::ptrdiff_t n)
const noexcept {
57 constexpr constexpr_ptr operator-(std::ptrdiff_t n)
const noexcept {
61 constexpr std::ptrdiff_t operator-(
const constexpr_ptr &o)
const noexcept {
65 constexpr to operator[](std::ptrdiff_t n)
const noexcept {
66 return static_cast<to
>(*(p + n));
71 constexpr operator const void *()
const noexcept {
return p; }