[cmp.common]

# 17 Language support library [[support]](./#support)

## 17.12 Comparisons [[cmp]](cmp#common)

### 17.12.3 Class template common_comparison_category [cmp.common]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L5288)

The type common_comparison_category provides an alias for
the strongest comparison category
to which all of the template arguments can be converted[.](#1.sentence-1)

[*Note [1](#note-1)*:

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[.](#1.sentence-2)

â *end note*]

[ð](#lib:common_comparison_category)

`template<class... Ts>
struct common_comparison_category {
  using type = see below;
};
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L5307)

*Remarks*: The member [*typedef-name*](dcl.typedef#nt:typedef-name "9.2.4 The typedef specifier [dcl.typedef]") type denotes
the common comparison type ([[class.spaceship]](class.spaceship "11.10.3 Three-way comparison")) of Ts...,
the expanded parameter pack, orvoid if any element of Ts is not a comparison category type[.](#2.sentence-1)

[*Note [2](#note-2)*:

This is std​::​strong_ordering if the expansion is empty[.](#2.sentence-2)

â *end note*]
