Loading [MathJax]/extensions/tex2jax.js
Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
transfer_just.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/meta/util.h"
7
8namespace di::execution {
9namespace transfer_just_ns {
10 struct Function {
11 template<concepts::Scheduler Sched, concepts::MovableValue... Values>
12 auto operator()(Sched&& scheduler, Values&&... values) const -> concepts::Sender auto {
13 if constexpr (concepts::TagInvocable<Function, Sched, Values...>) {
14 return function::tag_invoke(*this, util::forward<Sched>(scheduler), util::forward<Values>(values)...);
15 } else {
16 return execution::transfer(execution::just(util::forward<Values>(values)...),
17 util::forward<Sched>(scheduler));
18 }
19 }
20 };
21}
22
23constexpr inline auto transfer_just = transfer_just_ns::Function {};
24}
Definition util.h:71
Definition scheduler.h:21
Definition sender.h:11
Definition tag_invoke.h:33
Definition transfer_just.h:9
Definition bulk.h:30
constexpr auto transfer
Definition transfer.h:30
constexpr auto transfer_just
Definition transfer_just.h:23
constexpr auto just
Definition just.h:86
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
Definition transfer_just.h:10
auto operator()(Sched &&scheduler, Values &&... values) const -> concepts::Sender auto
Definition transfer_just.h:12