Iros
 
Loading...
Searching...
No Matches
async_range.h
Go to the documentation of this file.
1#pragma once
2
7#include "di/meta/vocab.h"
8
9namespace di::execution {
10namespace next_ns {
11 struct Function {
12 template<typename AsyncRange>
14 auto operator()(AsyncRange& async_range) const {
15 static_assert(
17 "The return value of execution::next() must be awaitable with an awaitable.");
18 return function::tag_invoke(*this, async_range);
19 }
20 };
21}
22
52constexpr inline auto next = next_ns::Function {};
53}
54
55namespace di::concepts {
56template<typename T>
59
60template<typename T>
62}
Definition async_range.h:57
Definition async_range.h:61
Definition is_awaitable.h:36
Definition vocab.h:77
Definition tag_invoke.h:33
Definition any_storable.h:9
Definition async_range.h:10
Definition bulk.h:30
constexpr auto next
Get the next value of a async range in a coroutine.
Definition async_range.h:52
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
decltype(concepts::detail::get_awaiter(util::declval< Awaitable >(), util::declval< Promise * >()).await_resume()) AwaitResult
Definition await_result.h:9
decltype(function::detail::invoke_impl(util::declval< Ts >()...)) InvokeResult
Definition invoke.h:64
Definition env_promise.h:18
Definition async_range.h:11