[comparisons.three.way] (original) (raw)
In this subclause, BUILTIN-PTR-THREE-WAY(T, U)for types T and U is a boolean constant expression.
BUILTIN-PTR-THREE-WAY(T, U) is trueif and only if <=> in the expressiondeclval<T>() <=> declval<U>() resolves to a built-in operator comparing pointers.
struct compare_three_way { template<class T, class U> requires three_way_comparable_with<T, U> || BUILTIN-PTR-THREE-WAY(T, U) constexpr auto operator()(T&& t, U&& u) const;using is_transparent = unspecified;};