[indirect.relops] (original) (raw)
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.8 Relational operators [indirect.relops]
template<class U, class AA> constexpr bool operator==(const indirect& lhs, const indirect<U, AA>& 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 or rhs is valueless,lhs.valueless_after_move() == rhs.valueless_after_move(); otherwise *lhs == *rhs.
template<class U, class AA> constexpr _synth-three-way-result_<T, U> operator<=>(const indirect& lhs, const indirect<U, AA>& rhs);
Returns: If lhs is valueless or rhs is valueless,!lhs.valueless_after_move() <=> !rhs.valueless_after_move(); otherwise_synth-three-way_(*lhs, *rhs).