31 lines
1.1 KiB
Markdown
31 lines
1.1 KiB
Markdown
[cmp.result]
|
||
|
||
# 17 Language support library [[support]](./#support)
|
||
|
||
## 17.12 Comparisons [[cmp]](cmp#result)
|
||
|
||
### 17.12.5 Result of three-way comparison [cmp.result]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L5460)
|
||
|
||
The behavior of a program
|
||
that adds specializations for the compare_three_way_result template
|
||
defined in this subclause is undefined[.](#1.sentence-1)
|
||
|
||
[2](#2)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L5465)
|
||
|
||
For the compare_three_way_result type trait
|
||
applied to the types T and U,
|
||
let t and u denote lvalues of typesconst remove_reference_t<T> and const remove_reference_t<U>,
|
||
respectively[.](#2.sentence-1)
|
||
|
||
If the expression t <=> u is well-formed
|
||
when treated as an unevaluated operand ([[expr.context]](expr.context "7.2.3 Context dependence")),
|
||
the member [*typedef-name*](dcl.typedef#nt:typedef-name "9.2.4 The typedef specifier [dcl.typedef]") type denotes the type decltype(t <=> u)[.](#2.sentence-2)
|
||
|
||
Otherwise, there is no member type[.](#2.sentence-3)
|