The three comparison category types (
[cmp.categories])
(the types
std::strong_ordering,
std::weak_ordering, and
std::partial_ordering)
are not predefined;
if the header
is not imported or included prior to a use of such a class type –
even an implicit use in which the type is not named
(e.g., via the
auto specifier (
[dcl.spec.auto])
in a defaulted three-way comparison (
[class.spaceship])
or use of the built-in operator) – the program is ill-formed
.