Iros
 
Loading...
Searching...
No Matches
fold_left.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace di::container {
7namespace detail {
9 template<concepts::InputIterator Iter, concepts::SentinelFor<Iter> Sent, typename T,
10 concepts::IndirectlyBinaryLeftFoldable<T, Iter> Op>
11 constexpr auto operator()(Iter first, Sent last, T init, Op op) const {
12 return util::move(
13 fold_left_with_iter(util::move(first), util::move(last), util::move(init), util::ref(op)).value);
14 }
15
16 template<concepts::InputContainer Con, typename T,
18 constexpr auto operator()(Con&& container, T init, Op op) const {
19 return (*this)(container::begin(container), container::end(container), util::move(init), util::ref(op));
20 }
21 };
22}
23
25}
26
27namespace di {
29}
Definition indirectly_binary_left_foldable.h:18
Definition input_container.h:8
Definition sequence.h:13
Definition sequence.h:12
constexpr auto fold_left_with_iter
Definition fold_left_with_iter.h:41
constexpr auto fold_left
Definition fold_left.h:24
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
constexpr auto curry_back
Definition curry_back.h:141
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
constexpr auto ref
Definition reference_wrapper.h:98
Definition zstring_parser.h:9
constexpr auto operator()(Con &&container, T init, Op op) const
Definition fold_left.h:18
constexpr auto operator()(Iter first, Sent last, T init, Op op) const
Definition fold_left.h:11