From Jason Turner

[move.iter.op.comp]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpoybnypuk/{from.md → to.md} +37 -16
tmp/tmpoybnypuk/{from.md → to.md} RENAMED
@@ -1,44 +1,65 @@
1
- ##### `move_iterator` comparisons <a id="move.iter.op.comp">[[move.iter.op.comp]]</a>
2
 
3
  ``` cpp
4
  template<class Iterator1, class Iterator2>
5
- constexpr bool operator==(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
 
 
 
 
6
  ```
7
 
 
 
 
8
  *Returns:* `x.base() == y.base()`.
9
 
10
- ``` cpp
11
- template <class Iterator1, class Iterator2>
12
- constexpr bool operator!=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
13
- ```
14
-
15
- *Returns:* `!(x == y)`.
16
-
17
  ``` cpp
18
  template<class Iterator1, class Iterator2>
19
  constexpr bool operator<(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
20
  ```
21
 
 
 
 
22
  *Returns:* `x.base() < y.base()`.
23
 
24
- ``` cpp
25
- template <class Iterator1, class Iterator2>
26
- constexpr bool operator<=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
27
- ```
28
-
29
- *Returns:* `!(y < x)`.
30
-
31
  ``` cpp
32
  template<class Iterator1, class Iterator2>
33
  constexpr bool operator>(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
34
  ```
35
 
 
 
 
36
  *Returns:* `y < x`.
37
 
 
 
 
 
 
 
 
 
 
 
38
  ``` cpp
39
  template<class Iterator1, class Iterator2>
40
  constexpr bool operator>=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
41
  ```
42
 
 
 
 
43
  *Returns:* `!(x < y)`.
44
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Comparisons <a id="move.iter.op.comp">[[move.iter.op.comp]]</a>
2
 
3
  ``` cpp
4
  template<class Iterator1, class Iterator2>
5
+ constexpr bool operator==(const move_iterator<Iterator1>& x,
6
+ const move_iterator<Iterator2>& y);
7
+ template<sentinel_for<Iterator> S>
8
+ friend constexpr bool operator==(const move_iterator& x,
9
+ const move_sentinel<S>& y);
10
  ```
11
 
12
+ *Constraints:* `x.base() == y.base()` is well-formed and convertible to
13
+ `bool`.
14
+
15
  *Returns:* `x.base() == y.base()`.
16
 
 
 
 
 
 
 
 
17
  ``` cpp
18
  template<class Iterator1, class Iterator2>
19
  constexpr bool operator<(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
20
  ```
21
 
22
+ *Constraints:* `x.base() < y.base()` is well-formed and convertible to
23
+ `bool`.
24
+
25
  *Returns:* `x.base() < y.base()`.
26
 
 
 
 
 
 
 
 
27
  ``` cpp
28
  template<class Iterator1, class Iterator2>
29
  constexpr bool operator>(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
30
  ```
31
 
32
+ *Constraints:* `y.base() < x.base()` is well-formed and convertible to
33
+ `bool`.
34
+
35
  *Returns:* `y < x`.
36
 
37
+ ``` cpp
38
+ template<class Iterator1, class Iterator2>
39
+ constexpr bool operator<=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
40
+ ```
41
+
42
+ *Constraints:* `y.base() < x.base()` is well-formed and convertible to
43
+ `bool`.
44
+
45
+ *Returns:* `!(y < x)`.
46
+
47
  ``` cpp
48
  template<class Iterator1, class Iterator2>
49
  constexpr bool operator>=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);
50
  ```
51
 
52
+ *Constraints:* `x.base() < y.base()` is well-formed and convertible to
53
+ `bool`.
54
+
55
  *Returns:* `!(x < y)`.
56
 
57
+ ``` cpp
58
+ template<class Iterator1, three_way_comparable_with<Iterator1> Iterator2>
59
+ constexpr compare_three_way_result_t<Iterator1, Iterator2>
60
+ operator<=>(const move_iterator<Iterator1>& x,
61
+ const move_iterator<Iterator2>& y);
62
+ ```
63
+
64
+ *Returns:* `x.base() <=> y.base()`.
65
+