Iros
 
Loading...
Searching...
No Matches
with_await_transform.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/util/forward.h"
5
6namespace di::execution {
7namespace as_awaitable_ns {
8 struct Function;
9}
10
12
13template<typename Derived>
15 template<typename T>
16 auto await_transform(T&& value) noexcept -> T&& {
17 return util::forward<T>(value);
18 }
19
20 template<typename T>
23 return function::tag_invoke(as_awaitable, util::forward<T>(value), static_cast<Derived&>(*this));
24 }
25};
26}
Definition tag_invoke.h:33
Definition awaitable_sender.h:7
Definition bulk.h:30
constexpr as_awaitable_ns::Function as_awaitable
Definition as_awaitable.h:102
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
decltype(di::function::tag_invoke(util::declval< Tag >(), util::declval< Args >()...)) TagInvokeResult
Definition tag_invoke.h:40
Definition with_await_transform.h:14
auto await_transform(T &&value) noexcept -> T &&
Definition with_await_transform.h:16
auto await_transform(T &&value) noexcept -> meta::TagInvokeResult< as_awaitable_ns::Function, T, Derived & >
Definition with_await_transform.h:22
Definition as_awaitable.h:86