Iros
 
Loading...
Searching...
No Matches
for_each.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace di::container {
11namespace detail {
13 template<concepts::InputIterator Iter, concepts::SentinelFor<Iter> Sent, typename Proj = function::Identity,
14 concepts::IndirectlyUnaryInvocable<meta::Projected<Iter, Proj>> F>
15 constexpr auto operator()(Iter first, Sent last, F f, Proj proj = {}) const -> InFunResult<Iter, F> {
16 for (; first != last; ++first) {
18 }
19 return { util::move(first), util::move(f) };
20 }
21
22 template<concepts::InputContainer Con, typename Proj = function::Identity,
23 concepts::IndirectlyUnaryInvocable<meta::Projected<meta::ContainerIterator<Con>, Proj>> F>
24 constexpr auto operator()(Con&& container, F f, Proj proj = {}) const
26 return (*this)(container::begin(container), container::end(container), util::move(f), util::ref(proj));
27 }
28 };
29}
30
31constexpr inline auto for_each = detail::ForEachFunction {};
32}
33
34namespace di {
36}
Definition sequence.h:13
Definition sequence.h:12
constexpr auto for_each
Definition for_each.h:31
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
constexpr auto invoke
Definition invoke.h:100
Conditional< concepts::BorrowedContainer< Con >, ContainerIterator< Con >, container::Dangling > BorrowedIterator
Definition borrowed_iterator.h:11
constexpr auto ref
Definition reference_wrapper.h:98
Definition zstring_parser.h:9
constexpr auto proj
Definition proj.h:59
Definition in_fun_result.h:8
constexpr auto operator()(Iter first, Sent last, F f, Proj proj={}) const -> InFunResult< Iter, F >
Definition for_each.h:15
constexpr auto operator()(Con &&container, F f, Proj proj={}) const -> InFunResult< meta::BorrowedIterator< Con >, F >
Definition for_each.h:24