Preconditions: If the expression 
std::forward<T>(t) <=> std::forward<U>(u) results in
a call to a built-in operator 
<=> comparing pointers of type 
P,
the conversion sequences from both 
T and 
U to 
P
are equality-preserving (
[concepts.equality]);
otherwise, 
T and 
U model 
three_way_comparable_with.