From Jason Turner

[cmp.concept]

Diff to HTML by rtfpessoa

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`,