Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
transfer.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace di::execution {
11namespace transfer_ns {
12 struct Function {
13 template<concepts::Scheduler Sched, concepts::Sender Send>
14 auto operator()(Send&& sender, Sched&& scheduler) const -> concepts::Sender auto {
15 if constexpr (requires {
17 util::forward<Send>(sender), util::forward<Sched>(scheduler));
18 }) {
20 util::forward<Send>(sender), util::forward<Sched>(scheduler));
22 return function::tag_invoke(*this, util::forward<Send>(sender), util::forward<Sched>(scheduler));
23 } else {
24 return schedule_from(util::forward<Sched>(scheduler), util::forward<Send>(sender));
25 }
26 }
27 };
28}
29
31}
Definition sender.h:11
Definition tag_invoke.h:33
Definition transfer.h:11
Definition bulk.h:30
constexpr auto transfer
Definition transfer.h:30
constexpr auto get_completion_scheduler
Definition get_completion_scheduler.h:19
constexpr auto get_env
Definition get_env.h:27
constexpr auto schedule_from
Definition schedule_from.h:235
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
Definition transfer.h:12
auto operator()(Send &&sender, Sched &&scheduler) const -> concepts::Sender auto
Definition transfer.h:14