17 Language support library [language.support]

17.11 Comparisons [cmp]

17.11.3 Class template common_­comparison_­category [cmp.common]

The type common_­comparison_­category provides an alias for the strongest comparison category to which all of the template arguments can be converted.
[Note
:
A comparison category type is stronger than another if they are distinct types and an instance of the former can be converted to an instance of the latter.
end note
]
template<class... Ts> struct common_comparison_category { using type = see below; };
Remarks: The member typedef-name type denotes the common comparison type ([class.spaceship]) of Ts..., the expanded parameter pack.
[Note
:
This is well-defined even if the expansion is empty or includes a type that is not a comparison category type.
end note
]