tmp/tmp1n75_77m/{from.md → to.md}
RENAMED
|
@@ -19,14 +19,14 @@ template<class T, class U>
|
|
| 19 |
};
|
| 20 |
```
|
| 21 |
|
| 22 |
Let `t` and `u` be lvalues of types `const remove_reference_t<T>` and
|
| 23 |
`const remove_reference_t<U>`, respectively. `T` and `U` model
|
| 24 |
-
`partially-ordered-with<T, U>` only if
|
| 25 |
|
| 26 |
- `t < u`, `t <= u`, `t > u`, `t >= u`, `u < t`, `u <= t`, `u > t`, and
|
| 27 |
-
`u >= t` have the same domain
|
| 28 |
- `bool(t < u) == bool(u > t)` is `true`,
|
| 29 |
- `bool(u < t) == bool(t > u)` is `true`,
|
| 30 |
- `bool(t <= u) == bool(u >= t)` is `true`, and
|
| 31 |
- `bool(u <= t) == bool(t >= u)` is `true`.
|
| 32 |
|
|
@@ -39,11 +39,11 @@ template<class T, class Cat = partial_ordering>
|
|
| 39 |
{ a <=> b } -> compares-as<Cat>;
|
| 40 |
};
|
| 41 |
```
|
| 42 |
|
| 43 |
Let `a` and `b` be lvalues of type `const remove_reference_t<T>`. `T`
|
| 44 |
-
and `Cat` model `three_way_comparable<T, Cat>` only if
|
| 45 |
|
| 46 |
- `(a <=> b == 0) == bool(a == b)` is `true`,
|
| 47 |
- `(a <=> b != 0) == bool(a != b)` is `true`,
|
| 48 |
- `((a <=> b) <=> 0)` and `(0 <=> (b <=> a))` are equal,
|
| 49 |
- `(a <=> b < 0) == bool(a < b)` is `true`,
|
|
@@ -75,11 +75,11 @@ let `u` and `u2` be lvalues denoting distinct equal objects of types
|
|
| 75 |
`const remove_reference_t<U>` and `remove_cvref_t<U>`, respectively. Let
|
| 76 |
`C` be
|
| 77 |
`common_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>`.
|
| 78 |
Let `CONVERT_TO_LVALUE<C>(E)` be defined as in
|
| 79 |
[[concepts.compare.general]]. `T`, `U`, and `Cat` model
|
| 80 |
-
`three_way_comparable_with<T, U, Cat>` only if
|
| 81 |
|
| 82 |
- `t <=> u` and `u <=> t` have the same domain,
|
| 83 |
- `((t <=> u) <=> 0)` and `(0 <=> (u <=> t))` are equal,
|
| 84 |
- `(t <=> u == 0) == bool(t == u)` is `true`,
|
| 85 |
- `(t <=> u != 0) == bool(t != u)` is `true`,
|
|
|
|
| 19 |
};
|
| 20 |
```
|
| 21 |
|
| 22 |
Let `t` and `u` be lvalues of types `const remove_reference_t<T>` and
|
| 23 |
`const remove_reference_t<U>`, respectively. `T` and `U` model
|
| 24 |
+
`partially-ordered-with<T, U>` only if
|
| 25 |
|
| 26 |
- `t < u`, `t <= u`, `t > u`, `t >= u`, `u < t`, `u <= t`, `u > t`, and
|
| 27 |
+
`u >= t` have the same domain,
|
| 28 |
- `bool(t < u) == bool(u > t)` is `true`,
|
| 29 |
- `bool(u < t) == bool(t > u)` is `true`,
|
| 30 |
- `bool(t <= u) == bool(u >= t)` is `true`, and
|
| 31 |
- `bool(u <= t) == bool(t >= u)` is `true`.
|
| 32 |
|
|
|
|
| 39 |
{ a <=> b } -> compares-as<Cat>;
|
| 40 |
};
|
| 41 |
```
|
| 42 |
|
| 43 |
Let `a` and `b` be lvalues of type `const remove_reference_t<T>`. `T`
|
| 44 |
+
and `Cat` model `three_way_comparable<T, Cat>` only if
|
| 45 |
|
| 46 |
- `(a <=> b == 0) == bool(a == b)` is `true`,
|
| 47 |
- `(a <=> b != 0) == bool(a != b)` is `true`,
|
| 48 |
- `((a <=> b) <=> 0)` and `(0 <=> (b <=> a))` are equal,
|
| 49 |
- `(a <=> b < 0) == bool(a < b)` is `true`,
|
|
|
|
| 75 |
`const remove_reference_t<U>` and `remove_cvref_t<U>`, respectively. Let
|
| 76 |
`C` be
|
| 77 |
`common_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>`.
|
| 78 |
Let `CONVERT_TO_LVALUE<C>(E)` be defined as in
|
| 79 |
[[concepts.compare.general]]. `T`, `U`, and `Cat` model
|
| 80 |
+
`three_way_comparable_with<T, U, Cat>` only if
|
| 81 |
|
| 82 |
- `t <=> u` and `u <=> t` have the same domain,
|
| 83 |
- `((t <=> u) <=> 0)` and `(0 <=> (u <=> t))` are equal,
|
| 84 |
- `(t <=> u == 0) == bool(t == u)` is `true`,
|
| 85 |
- `(t <=> u != 0) == bool(t != u)` is `true`,
|