20 Memory management library [mem]

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

20.4.2 Class template polymorphic [polymorphic]

20.4.2.6 Observers [polymorphic.obs]

constexpr const T& operator*() const noexcept; constexpr T& operator*() noexcept;
Preconditions: *this is not valueless.
Returns: A reference to the owned object.
constexpr const_pointer operator->() const noexcept; constexpr pointer operator->() noexcept;
Preconditions: *this is not valueless.
Returns: A pointer to the owned object.
constexpr bool valueless_after_move() const noexcept;
Returns: true if *this is valueless, otherwise false.
constexpr allocator_type get_allocator() const noexcept;
Returns: alloc.