di 0.1.0
Loading...
Searching...
No Matches
single_sender_value_type.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace di::meta {
7namespace 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
17template<typename Send, typename Env>
18requires(concepts::SenderIn<Send, Env> &&
19 !concepts::SameAs<
20 detail::SingleSenderValueTypeHelperBadValue,
24}
Definition merge_interfaces.h:6
detail::ConditionalHelper< value, T, U >::Type Conditional
Definition core.h:88
T::Type Type
Definition core.h:26
T::Front Front
Definition list.h:108
GatherSignatures< execution::SetValue, Sender, Env, Tup, Var > ValueTypesOf
Definition value_types_of.h:14
detail::DeferHelper< Fun, Args... > Defer
Definition function.h:27
ValueTypesOf< Send, Env, detail::SingleSenderValueTypeHelper, detail::SingleSenderValueTypeHelper > SingleSenderValueType
Definition single_sender_value_type.h:22