For the compare_three_way_result type trait
applied to the types T and U,
let t and u denote lvalues of types
const 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-nametype
denotes the type decltype(t <=> u).