20 Memory management library [mem]

20.4 Types for composite class design [mem.composite.types]

20.4.1 Class template indirect [indirect]

20.4.1.6 Observers [indirect.obs]

constexpr const T& operator*() const & noexcept; constexpr T& operator*() & noexcept;
Preconditions: *this is not valueless.
Returns: *p.
constexpr const T&& operator*() const && noexcept; constexpr T&& operator*() && noexcept;
Preconditions: *this is not valueless.
Returns: std​::​move(*p).
constexpr const_pointer operator->() const noexcept; constexpr pointer operator->() noexcept;
Preconditions: *this is not valueless.
Returns: p.
constexpr bool valueless_after_move() const noexcept;
Returns: true if *this is valueless, otherwise false.
constexpr allocator_type get_allocator() const noexcept;
Returns: alloc.