17 Language support library [support] (original) (raw)

The behavior of a program that adds specializations for the compare_­three_­way_­result template defined in this subclause is undefined.

For the compare_­three_­way_­result type trait applied to the types T and U, let t and u denote lvalues of typesconst remove_­reference_­t<T> and const remove_­reference_­t<U>, respectively.

If the expression t <=> u is well-formed when treated as an unevaluated operand ([expr.context]), the member typedef-name typedenotes the type decltype(t <=> u).

Otherwise, there is no member type.