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.9 Comparison with T [indirect.comp.with.t]

template<class U> constexpr bool operator==(const indirect& lhs, const U& rhs) noexcept(noexcept(*lhs == rhs));
Mandates: The expression *lhs == rhs is well-formed and its result is convertible to bool.
Returns: If lhs is valueless, false; otherwise *lhs == rhs.
template<class U> constexpr synth-three-way-result<T, U> operator<=>(const indirect& lhs, const U& rhs);
Returns: If lhs is valueless, strong_ordering​::​less; otherwise synth-three-way(*lhs, rhs).