Iros
 
Loading...
Searching...
No Matches
let_each.h
Go to the documentation of this file.
1#pragma once
2
9#include "di/meta/util.h"
10
11namespace di::execution {
12namespace let_each_ns {
14 template<concepts::Sender Seq, concepts::MovableValue Fun>
15 auto operator()(Seq&& sequence, Fun&& transformer) const -> concepts::SequenceSender auto {
17 return function::tag_invoke(*this, util::forward<Seq>(sequence), util::forward<Fun>(transformer));
18 } else {
19 return transform_each(util::forward<Seq>(sequence), let_value(util::forward<Fun>(transformer)));
20 }
21 }
22 };
23
25 template<concepts::Sender Seq, concepts::MovableValue Fun>
26 auto operator()(Seq&& sequence, Fun&& transformer) const -> concepts::SequenceSender auto {
28 return function::tag_invoke(*this, util::forward<Seq>(sequence), util::forward<Fun>(transformer));
29 } else {
30 return transform_each(util::forward<Seq>(sequence), let_error(util::forward<Fun>(transformer)));
31 }
32 }
33 };
34
36 template<concepts::Sender Seq, concepts::MovableValue Fun>
37 auto operator()(Seq&& sequence, Fun&& transformer) const -> concepts::SequenceSender auto {
39 return function::tag_invoke(*this, util::forward<Seq>(sequence), util::forward<Fun>(transformer));
40 } else {
41 return transform_each(util::forward<Seq>(sequence), let_stopped(util::forward<Fun>(transformer)));
42 }
43 }
44 };
45}
46
60
77
91}
Definition sequence_sender.h:102
Definition tag_invoke.h:33
Definition let_each.h:12
Definition bulk.h:30
constexpr auto let_value
Definition let.h:208
constexpr auto let_error_each
Transform the errors of a sequence into new senders.
Definition let_each.h:76
constexpr auto let_error
Definition let.h:209
constexpr auto transform_each
Transform each sender of a sequence.
Definition transform_each.h:149
constexpr auto let_value_each
Transform the values of a sequence into new senders.
Definition let_each.h:59
constexpr auto let_stopped_each
Transform the stopped signal of a sequence into new senders.
Definition let_each.h:90
constexpr auto let_stopped
Definition let.h:210
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto curry_back
Definition curry_back.h:141
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
constexpr auto sequence
Definition sequence.h:34
Defines the sequence sender concepts and related CPOs.
auto operator()(Seq &&sequence, Fun &&transformer) const -> concepts::SequenceSender auto
Definition let_each.h:26
auto operator()(Seq &&sequence, Fun &&transformer) const -> concepts::SequenceSender auto
Definition let_each.h:37
auto operator()(Seq &&sequence, Fun &&transformer) const -> concepts::SequenceSender auto
Definition let_each.h:15