tmp/tmpmm2ukyme/{from.md → to.md}
RENAMED
|
@@ -1,11 +1,13 @@
|
|
| 1 |
### Fold <a id="alg.fold">[[alg.fold]]</a>
|
| 2 |
|
| 3 |
``` cpp
|
| 4 |
-
template<input_iterator I, sentinel_for<I> S, class T
|
|
|
|
| 5 |
constexpr auto ranges::fold_left(I first, S last, T init, F f);
|
| 6 |
-
template<input_range R, class T
|
|
|
|
| 7 |
constexpr auto ranges::fold_left(R&& r, T init, F f);
|
| 8 |
```
|
| 9 |
|
| 10 |
*Returns:*
|
| 11 |
|
|
@@ -28,14 +30,14 @@ template<input_range R, indirectly-binary-left-foldable<range_value_t<R>, iterat
|
|
| 28 |
``` cpp
|
| 29 |
ranges::fold_left_first_with_iter(std::move(first), last, f).value
|
| 30 |
```
|
| 31 |
|
| 32 |
``` cpp
|
| 33 |
-
template<bidirectional_iterator I, sentinel_for<I> S, class T,
|
| 34 |
indirectly-binary-right-foldable<T, I> F>
|
| 35 |
constexpr auto ranges::fold_right(I first, S last, T init, F f);
|
| 36 |
-
template<bidirectional_range R, class T,
|
| 37 |
indirectly-binary-right-foldable<T, iterator_t<R>> F>
|
| 38 |
constexpr auto ranges::fold_right(R&& r, T init, F f);
|
| 39 |
```
|
| 40 |
|
| 41 |
*Effects:* Equivalent to:
|
|
@@ -74,14 +76,15 @@ I tail = ranges::prev(ranges::next(first, std::move(last)));
|
|
| 74 |
return optional<U>(in_place,
|
| 75 |
ranges::fold_right(std::move(first), tail, iter_value_t<I>(*tail), std::move(f)));
|
| 76 |
```
|
| 77 |
|
| 78 |
``` cpp
|
| 79 |
-
template<input_iterator I, sentinel_for<I> S, class T,
|
| 80 |
indirectly-binary-left-foldable<T, I> F>
|
| 81 |
constexpr see below ranges::fold_left_with_iter(I first, S last, T init, F f);
|
| 82 |
-
template<input_range R, class T
|
|
|
|
| 83 |
constexpr see below ranges::fold_left_with_iter(R&& r, T init, F f);
|
| 84 |
```
|
| 85 |
|
| 86 |
Let `U` be `decay_t<invoke_result_t<F&, T, iter_reference_t<I>>>`.
|
| 87 |
|
|
|
|
| 1 |
### Fold <a id="alg.fold">[[alg.fold]]</a>
|
| 2 |
|
| 3 |
``` cpp
|
| 4 |
+
template<input_iterator I, sentinel_for<I> S, class T = iter_value_t<I>,
|
| 5 |
+
indirectly-binary-left-foldable<T, I> F>
|
| 6 |
constexpr auto ranges::fold_left(I first, S last, T init, F f);
|
| 7 |
+
template<input_range R, class T = range_value_t<R>,
|
| 8 |
+
indirectly-binary-left-foldable<T, iterator_t<R>> F>
|
| 9 |
constexpr auto ranges::fold_left(R&& r, T init, F f);
|
| 10 |
```
|
| 11 |
|
| 12 |
*Returns:*
|
| 13 |
|
|
|
|
| 30 |
``` cpp
|
| 31 |
ranges::fold_left_first_with_iter(std::move(first), last, f).value
|
| 32 |
```
|
| 33 |
|
| 34 |
``` cpp
|
| 35 |
+
template<bidirectional_iterator I, sentinel_for<I> S, class T = iter_value_t<I>,
|
| 36 |
indirectly-binary-right-foldable<T, I> F>
|
| 37 |
constexpr auto ranges::fold_right(I first, S last, T init, F f);
|
| 38 |
+
template<bidirectional_range R, class T = range_value_t<R>,
|
| 39 |
indirectly-binary-right-foldable<T, iterator_t<R>> F>
|
| 40 |
constexpr auto ranges::fold_right(R&& r, T init, F f);
|
| 41 |
```
|
| 42 |
|
| 43 |
*Effects:* Equivalent to:
|
|
|
|
| 76 |
return optional<U>(in_place,
|
| 77 |
ranges::fold_right(std::move(first), tail, iter_value_t<I>(*tail), std::move(f)));
|
| 78 |
```
|
| 79 |
|
| 80 |
``` cpp
|
| 81 |
+
template<input_iterator I, sentinel_for<I> S, class T = iter_value_t<I>,
|
| 82 |
indirectly-binary-left-foldable<T, I> F>
|
| 83 |
constexpr see below ranges::fold_left_with_iter(I first, S last, T init, F f);
|
| 84 |
+
template<input_range R, class T = range_value_t<R>,
|
| 85 |
+
indirectly-binary-left-foldable<T, iterator_t<R>> F>
|
| 86 |
constexpr see below ranges::fold_left_with_iter(R&& r, T init, F f);
|
| 87 |
```
|
| 88 |
|
| 89 |
Let `U` be `decay_t<invoke_result_t<F&, T, iter_reference_t<I>>>`.
|
| 90 |
|