Iros
 
Loading...
Searching...
No Matches
get_completion_signatures.h
Go to the documentation of this file.
1#pragma once
2
8#include "di/meta/core.h"
9#include "di/meta/util.h"
11
12namespace di::execution {
13namespace detail {
15 template<typename Sender, typename Env>
19 constexpr auto operator()(Sender&&, Env&&) const {
22 static_assert(
24 "A customized get_completion_signatures() must return an instance of di::CompletionSignatures.");
25 return Result {};
26 } else if constexpr (requires { typename meta::RemoveCVRef<Sender>::CompletionSignatures; }) {
28 static_assert(
30 "A sender's CompletionSignatures typedef must be an instance of di::CompletionSignatures.");
31 return Result {};
35 } else {
38 }
39 }
40 }
41 };
42}
43
45}
Definition core.h:139
Definition is_awaitable.h:36
Definition core.h:128
Definition tag_invoke.h:33
Definition read.h:70
Definition bulk.h:30
constexpr auto get_completion_signatures
Definition get_completion_signatures.h:44
RemoveCV< RemoveReference< T > > RemoveCVRef
Definition core.h:74
decltype(concepts::detail::get_awaiter(util::declval< Awaitable >(), util::declval< Promise * >()).await_resume()) AwaitResult
Definition await_result.h:9
decltype(di::function::tag_invoke(util::declval< Tag >(), util::declval< Args >()...)) TagInvokeResult
Definition tag_invoke.h:40
Expected< T, Error > Result
Definition result.h:8
StatusCode< Erased< long > > Error
Definition error.h:8
Definition env_promise.h:18
Definition set_error.h:6
Definition set_stopped.h:6
Definition set_value.h:6
Definition get_completion_signatures.h:14
Definition completion_signuatures.h:7