46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
[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*]
|