From Jason Turner

[alg.ends.with]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpxuoh5l0b/{from.md → to.md} +41 -3
tmp/tmpxuoh5l0b/{from.md → to.md} RENAMED
@@ -10,17 +10,35 @@ template<input_iterator I1, sentinel_for<I1> S1, input_iterator I2, sentinel_for
10
  Proj1 proj1 = {}, Proj2 proj2 = {});
11
  ```
12
 
13
  Let `N1` be `last1 - first1` and `N2` be `last2 - first2`.
14
 
15
- *Returns:* `false` if `N1` < `N2`, otherwise
16
 
17
  ``` cpp
18
  ranges::equal(std::move(first1) + (N1 - N2), last1, std::move(first2), last2,
19
  pred, proj1, proj2)
20
  ```
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  ``` cpp
23
  template<input_range R1, input_range R2, class Pred = ranges::equal_to, class Proj1 = identity,
24
  class Proj2 = identity>
25
  requires (forward_range<R1> || sized_range<R1>) &&
26
  (forward_range<R2> || sized_range<R2>) &&
@@ -29,11 +47,31 @@ template<input_range R1, input_range R2, class Pred = ranges::equal_to, class Pr
29
  Proj1 proj1 = {}, Proj2 proj2 = {});
30
  ```
31
 
32
  Let `N1` be `ranges::distance(r1)` and `N2` be `ranges::distance(r2)`.
33
 
34
- *Returns:* `false` if `N1` < `N2`, otherwise
35
 
36
  ``` cpp
37
- ranges::equal(ranges::drop_view(ranges::ref_view(r1), N1 - N2), r2, pred, proj1, proj2)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  ```
39
 
 
10
  Proj1 proj1 = {}, Proj2 proj2 = {});
11
  ```
12
 
13
  Let `N1` be `last1 - first1` and `N2` be `last2 - first2`.
14
 
15
+ *Returns:* `false` if `N1` < `N2`, otherwise:
16
 
17
  ``` cpp
18
  ranges::equal(std::move(first1) + (N1 - N2), last1, std::move(first2), last2,
19
  pred, proj1, proj2)
20
  ```
21
 
22
+ ``` cpp
23
+ template<execution-policy Ep, random_access_iterator I1, sized_sentinel_for<I1> S1,
24
+ random_access_iterator I2, sized_sentinel_for<I2> S2,
25
+ class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity>
26
+ requires indirectly_comparable<I1, I2, Pred, Proj1, Proj2>
27
+ bool ranges::ends_with(Ep&& exec, I1 first1, S1 last1, I2 first2, S2 last2,
28
+ Pred pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {});
29
+ ```
30
+
31
+ Let `N1` be `last1 - first1` and `N2` be `last2 - first2`.
32
+
33
+ *Returns:* `false` if `N1` < `N2`, otherwise:
34
+
35
+ ``` cpp
36
+ ranges::equal(std::forward<Ep>(exec), std::move(first1) + (N1 - N2), last1,
37
+ std::move(first2), last2, pred, proj1, proj2)
38
+ ```
39
+
40
  ``` cpp
41
  template<input_range R1, input_range R2, class Pred = ranges::equal_to, class Proj1 = identity,
42
  class Proj2 = identity>
43
  requires (forward_range<R1> || sized_range<R1>) &&
44
  (forward_range<R2> || sized_range<R2>) &&
 
47
  Proj1 proj1 = {}, Proj2 proj2 = {});
48
  ```
49
 
50
  Let `N1` be `ranges::distance(r1)` and `N2` be `ranges::distance(r2)`.
51
 
52
+ *Returns:* `false` if `N1` < `N2`, otherwise:
53
 
54
  ``` cpp
55
+ ranges::equal(views::drop(ranges::ref_view(r1), N1 - static_cast<decltype(N1)>(N2)),
56
+ r2, pred, proj1, proj2)
57
+ ```
58
+
59
+ ``` cpp
60
+ template<execution-policy Ep, sized-random-access-range R1,
61
+ sized-random-access-range R2, class Pred = ranges::equal_to,
62
+ class Proj1 = identity, class Proj2 = identity>
63
+ requires indirectly_comparable<iterator_t<R1>, iterator_t<R2>, Pred, Proj1, Proj2>
64
+ bool ranges::ends_with(Ep&& exec, R1&& r1, R2&& r2,
65
+ Pred pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {});
66
+ ```
67
+
68
+ Let `N1` be `ranges::distance(r1)` and `N2` be `ranges::distance(r2)`.
69
+
70
+ *Returns:* `false` if `N1` < `N2`, otherwise:
71
+
72
+ ``` cpp
73
+ ranges::equal(std::forward<Ep>(exec),
74
+ views::drop(ranges::ref_view(r1), N1 - static_cast<decltype(N1)>(N2)),
75
+ r2, pred, proj1, proj2)
76
  ```
77