Iros
Loading...
Searching...
No Matches
single_sender_value_type.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/execution/concepts/sender_in.h
"
4
#include "
di/execution/meta/value_types_of.h
"
5
6
namespace
di::meta
{
7
namespace
detail
{
8
struct
SingleSenderValueTypeHelperBadValue
{};
9
10
template
<
typename
... Types>
11
using
SingleSenderValueTypeHelper
=
meta::Type
<
12
meta::Conditional
<
sizeof
...(Types) == 0,
meta::TypeConstant<void>
,
13
meta::Conditional
<
sizeof
...(Types) == 1,
meta::Defer
<
meta::Front
,
meta::List
<Types...>>,
14
meta::TypeConstant<SingleSenderValueTypeHelperBadValue>
>>>;
15
}
16
17
template
<
typename
Send,
typename
Env>
18
requires
(
concepts::SenderIn<Send, Env>
&&
19
!
concepts::SameAs
<
20
detail::SingleSenderValueTypeHelperBadValue
,
21
ValueTypesOf<Send, Env, detail::SingleSenderValueTypeHelper, detail::SingleSenderValueTypeHelper>
>)
22
using
SingleSenderValueType
=
23
ValueTypesOf<Send, Env, detail::SingleSenderValueTypeHelper, detail::SingleSenderValueTypeHelper>
;
24
}
di::concepts::SameAs
Definition
core.h:114
di::concepts::SenderIn
Definition
sender_in.h:10
di::meta::detail
Definition
const_sentinel.h:8
di::meta::detail::SingleSenderValueTypeHelper
meta::Type< meta::Conditional< sizeof...(Types)==0, meta::TypeConstant< void >, meta::Conditional< sizeof...(Types)==1, meta::Defer< meta::Front, meta::List< Types... > >, meta::TypeConstant< SingleSenderValueTypeHelperBadValue > > > > SingleSenderValueTypeHelper
Definition
single_sender_value_type.h:11
di::meta
Definition
merge_interfaces.h:6
di::meta::Conditional
detail::ConditionalHelper< value, T, U >::Type Conditional
Definition
core.h:88
di::meta::Type
T::Type Type
Definition
core.h:26
di::meta::Front
T::Front Front
Definition
list.h:100
di::meta::ValueTypesOf
GatherSignatures< execution::SetValue, Sender, Env, Tup, Var > ValueTypesOf
Definition
value_types_of.h:14
di::meta::Defer
detail::DeferHelper< Fun, Args... > Defer
Definition
function.h:27
di::meta::SingleSenderValueType
ValueTypesOf< Send, Env, detail::SingleSenderValueTypeHelper, detail::SingleSenderValueTypeHelper > SingleSenderValueType
Definition
single_sender_value_type.h:22
sender_in.h
di::meta::List
Definition
core.h:5
di::meta::TypeConstant
Definition
core.h:18
di::meta::detail::SingleSenderValueTypeHelperBadValue
Definition
single_sender_value_type.h:8
value_types_of.h
libs
di
include
di
execution
meta
single_sender_value_type.h
Generated by
1.13.0