|
| template<concepts::Interface... Interfaces> |
| using | MergeInterfaces = meta::Unique<meta::Concat<meta::Transform<Interfaces, meta::Quote<meta::Type>>...>> |
| |
| template<concepts::Method Method> |
| using | MethodErasedSignature |
| |
| template<concepts::Method Method> |
| using | MethodSignature = Method::Signature |
| |
| template<concepts::Method Method> |
| using | MethodTag = Method::Tag |
| |
| template<typename T> |
| using | BitValue = T::Value |
| |
| template<concepts::Allocator Alloc, typename T = void> |
| using | AllocatorResult = meta::LikeExpected<decltype(di::allocate(util::declval<Alloc&>(), 0, 0)), T> |
| |
| template<concepts::ViewableContainer Con> |
| using | AsView = decltype(container::view::all(util::declval<Con>())) |
| |
| template<concepts::Container Con> |
| using | BorrowedIterator = Conditional<concepts::BorrowedContainer<Con>, ContainerIterator<Con>, container::Dangling> |
| |
| template<concepts::Container Con> |
| using | BorrowedView |
| |
| template<concepts::InputIterator Iter> |
| using | ConstIterator = Conditional<concepts::ConstantIterator<Iter>, Iter, container::ConstIteratorImpl<Iter>> |
| |
| template<typename Sent> |
| using | ConstSentinel = detail::ConstSentinelHelper<Sent>::Type |
| |
| template<concepts::Container Con> |
| using | ContainerConstIterator = ConstIterator<ContainerIterator<Con>> |
| |
| template<concepts::Container Con> |
| using | ContainerConstReference = IteratorConstReference<ContainerIterator<Con>> |
| |
| template<typename T> |
| using | ContainerIterator = decltype(container::begin(util::declval<T&>())) |
| |
| template<typename T, typename Tag = meta::RemoveCVRef<T>, typename It = ContainerIterator<T>, typename Sent = ContainerSentinel<T>> |
| using | ContainerIteratorReconstructed |
| |
| template<typename T> |
| using | ContainerReference = IteratorReference<ContainerIterator<T>> |
| |
| template<typename T> |
| using | ContainerRValue = IteratorRValue<ContainerIterator<T>> |
| |
| template<typename T> |
| using | ContainerSentinel = decltype(container::end(util::declval<T&>())) |
| |
| template<typename T> |
| using | ContainerSizeType = decltype(container::size(util::declval<T>())) |
| |
| template<typename T> |
| using | ContainerSSizeType = IteratorSSizeType<ContainerIterator<T>> |
| |
| template<typename T> |
| using | ContainerValue = IteratorValue<ContainerIterator<T>> |
| |
| template<typename F, concepts::IndirectlyReadable... Its> |
| using | IndirectResult = InvokeResult<F, meta::IteratorReference<Its>...> |
| |
| template<typename T> |
| using | IteratorCategory = decltype(container::iterator_category(types::in_place_type<meta::RemoveCVRef<T>>)) |
| |
| template<concepts::IndirectlyReadable T> |
| using | IteratorCommonReference = meta::CommonReference<meta::IteratorReference<T>, meta::IteratorValue<T>&> |
| |
| template<concepts ::IndirectlyReadable Iter> |
| using | IteratorConstReference = meta::CommonReference<meta::IteratorValue<Iter> const&&, meta::IteratorReference<Iter>> |
| |
| template<typename It, typename Sent = It> |
| using | IteratorReconstructed = decltype(container::reconstruct(util::declval<It>(), util::declval<Sent>())) |
| |
| template<typename T> |
| using | IteratorReference = decltype(*util::declval<T const&>()) |
| |
| template<typename T> |
| using | IteratorRValue = decltype(container::iterator_move(util::declval<T&>())) |
| |
| template<typename T> |
| using | IteratorSizeType = MakeUnsigned<IteratorSSizeType<T>> |
| |
| template<typename T> |
| using | IteratorSSizeType = decltype(container::iterator_ssize_type(types::in_place_type<meta::RemoveCVRef<T>>)) |
| |
| template<typename T> |
| using | IteratorValue = meta::Type<decltype(container::iterator_value(types::in_place_type<meta::RemoveCVRef<T>>))> |
| |
| template<typename T, typename It = ContainerIterator<T>, typename Sent = ContainerSentinel<T>> |
| using | Reconstructed = decltype(container::reconstruct(in_place_type<T>, util::declval<It>(), util::declval<Sent>())) |
| |
| template<typename T> |
| using | EncodingCodeUnit = RemoveCVRef<T>::CodeUnit |
| |
| template<typename T> |
| using | EncodingCodePoint = RemoveCVRef<T>::CodePoint |
| |
| template<typename T> |
| using | EncodingIterator = RemoveCVRef<T>::Iterator |
| |
| template<concepts::HasEncoding T> |
| using | Encoding = meta::RemoveCVRef<T>::Encoding |
| |
| template<typename T> |
| using | MessageReply = Type<detail::MessageReplyHelper<T>> |
| |
| template<typename T> |
| using | Protocol = typename T::Protocol |
| |
| template<concepts::HasProtocol T> |
| using | MessageTypesWithoutReplies |
| |
| template<concepts::HasProtocol T> |
| using | PeerMessageTypesWithoutReplies |
| |
| template<concepts::HasProtocol T> |
| using | MessageTypes = Concat<MessageTypesWithoutReplies<T>, detail::MessagesReplies<PeerMessageTypesWithoutReplies<T>>> |
| |
| template<concepts::HasProtocol T> |
| using | AllMessageTypesWithoutReplies = Concat<typename meta::Protocol<T>::Client, typename meta::Protocol<T>::Server> |
| |
| template<typename Awaitable, typename Promise = void> |
| using | AwaitResult |
| |
| template<typename Sender, typename Env = types::EmptyEnv> |
| using | CompletionSignaturesOf |
| |
| template<typename Send, typename Rec> |
| using | ConnectResult = decltype(execution::connect(util::declval<Send>(), util::declval<Rec>())) |
| |
| template<typename... Types> |
| using | DecayedTuple = vocab::Tuple<meta::Decay<Types>...> |
| |
| template<typename T> |
| using | EnvOf = decltype(execution::get_env(util::declval<T>())) |
| |
| template<typename Sender, typename Env = types::EmptyEnv, template< typename... > typename Var = meta::VariantOrEmpty> |
| using | ErrorTypesOf = GatherSignatures<execution::SetError, Sender, Env, meta::TypeIdentity, Var> |
| |
| template<concepts::ExecutionContext Context> |
| using | ExecutionContextScheduler = decltype(util::declval<Context&>().get_scheduler()) |
| |
| template<typename Tag, typename S, typename E, template< typename... > typename Tuple, template< typename... > typename Variant> |
| using | GatherSignatures |
| |
| template<typename Send, typename Env = types::EmptyEnv, concepts::ValidCompletionSignatures ExtraSigs = types::CompletionSignatures<>, template< typename... > typename SetValue = detail::DefaultSetValue, template< typename... > typename SetError = detail::DefaultSetError, concepts::ValidCompletionSignatures SetStopped = types::CompletionSignatures<execution::SetStopped()>> |
| using | MakeCompletionSignatures |
| |
| template<typename Sched> |
| using | ScheduleResult = decltype(execution::schedule(util::declval<Sched>())) |
| |
| template<typename Send, typename Env> |
| using | SingleSenderValueType |
| |
| template<typename T> |
| using | StopTokenOf = meta::RemoveCVRef<decltype(execution::get_stop_token(util::declval<T>()))> |
| |
| template<typename Sender, typename Env = types::EmptyEnv, template< typename... > typename Tup = meta::DecayedTuple, template< typename... > typename Var = meta::VariantOrEmpty> |
| using | ValueTypesOf = GatherSignatures<execution::SetValue, Sender, Env, Tup, Var> |
| |
| template<typename... Types> |
| using | VariantOrEmpty = detail::VariantOrEmptyHelper<meta::Unique<meta::List<Types...>>>::Type |
| |
| template<typename T> |
| using | AllocatorOf = meta::RemoveCVRef<decltype(execution::get_allocator(util::declval<T>()))> |
| |
| template<concepts::Sender Seq> |
| using | IntoLockstepSequence = decltype(execution::into_lockstep_sequence(util::declval<Seq>())) |
| | Deduce the type of converting a sequence into a lockstep sequence.
|
| |
| template<typename Rec, typename Send> |
| using | NextSenderOf = decltype(execution::set_next(util::declval<meta::RemoveCVRef<Rec>&>(), util::declval<Send>())) |
| |
| template<typename Send, typename Env> |
| using | SequenceCompletionSignaturesOf |
| |
| template<typename Send, typename Rec> |
| using | SubscribeResult = decltype(execution::subscribe(util::declval<Send>(), util::declval<Rec>())) |
| |
| template<typename... Ts> |
| using | InvokeResult = decltype(function::detail::invoke_impl(util::declval<Ts>()...)) |
| |
| template<typename Tag, typename... Args> |
| using | TagInvokeResult = decltype(di::function::tag_invoke(util::declval<Tag>(), util::declval<Args>()...)) |
| |
| template<typename T, concepts::Impl< io::Reader > Reader> |
| using | ReaderResult |
| |
| template<typename T, concepts::Impl< io::Writer > Writer> |
| using | WriterResult |
| |
| template<typename R, concepts::TypeList T> |
| using | AsLanguageFunction = Type<detail::AsLanguageFunction<R, T>> |
| |
| template<typename T> |
| using | AsList = Type<detail::AsListHelper<T>> |
| |
| template<template< typename... > typename Template, concepts::TypeList T> |
| using | AsTemplate = Type<detail::AsTemplateHelper<Template, T>> |
| |
| template<concepts::TypeList T> |
| using | AsTuple = AsTemplate<vocab::Tuple, T> |
| |
| template<concepts::TypeList... Lists> |
| using | Concat = Type<detail::ConcatHelper<Lists...>> |
| |
| template<concepts::TypeList L, typename T> |
| using | PushFront = Concat<List<T>, L> |
| |
| template<concepts::TypeList L, typename T> |
| using | PushBack = Concat<L, List<T>> |
| |
| template<concepts::TypeList List> |
| using | Join = Apply<Quote<Concat>, List> |
| |
| template<concepts::TypeList L> |
| using | PopFront = Type<detail::PopFrontHelper<L>> |
| |
| template<concepts::TypeList L> |
| using | PopBack = Type<detail::PopBackHelper<L>> |
| |
| template<concepts::TypeList List, typename Init, concepts::MetaInvocable MetaFn> |
| using | Fold = Type<detail::FoldHelper<List, Init, MetaFn>> |
| |
| template<concepts::TypeList List, typename Init, concepts::MetaInvocable MetaFn> |
| using | FoldRight = Type<detail::FoldRightHelper<List, Init, MetaFn>> |
| |
| template<concepts::TypeList List, concepts::MetaInvocable Pred> |
| using | Filter = Fold<List, meta::List<>, detail::FilterReducer<Pred>> |
| |
| template<concepts::TypeList List, typename Needle, typename Replacement> |
| using | Replace = Fold<List, meta::List<>, detail::ReplaceReducer<Needle, Replacement>> |
| |
| template<concepts::TypeList List, concepts::MetaInvocable Pred, typename Replacement> |
| using | ReplaceIf = Fold<List, meta::List<>, detail::ReplaceIfReducer<Pred, Replacement>> |
| |
| template<concepts::TypeList List, typename Function> |
| using | Transform = detail::TransformHelper<List, Function>::Type |
| |
| template<concepts::TypeList Lst> |
| using | Unique = Fold<Lst, List<>, detail::PushBackIfUnique> |
| |
| template<concepts::TypeList T, concepts::TypeList U> |
| using | Zip = Type<detail::ZipHelper<T, U>> |
| |
| template<typename T, usize N> |
| using | Repeat = Type<detail::RepeatHelper<T, N>> |
| |
| template<concepts::TypeList... Types> |
| using | CartesianProduct = Type<detail::CartesianProductHelper<Types...>> |
| |
| template<typename T, usize count> |
| using | MakeIntegerSequence = Type<detail::MakeIntegerSequenceHelper<T, count>> |
| |
| template<usize count> |
| using | MakeIndexSequence = MakeIntegerSequence<usize, count> |
| |
| template<typename... Types> |
| using | IndexSequenceFor = MakeIndexSequence<sizeof...(Types)> |
| |
| template<typename F, typename... Args> |
| using | CallResult = decltype(util::declval<F>()(util::declval<Args>()...)) |
| |
| template<typename... Types> |
| using | CommonType = detail::CommonTypeHelper<Types...>::Type |
| |
| template<typename... Types> |
| using | CommonReference = detail::CommonReferenceHelper<Types...>::Type |
| |
| template<typename... Types> |
| using | CommonComparisonCategory = Type<detail::CommonComparisonCategoryHelper<Types...>> |
| |
| template<typename T, typename U = T> |
| using | CompareThreeWayResult = meta::Type<detail::CompareThreeWayResultHelper<T, U>> |
| |
| template<concepts::Trait T> |
| using | Type = T::Type |
| |
| template<typename T> |
| using | TypeIdentity = Type<TypeConstant<T>> |
| | This is a helper template to prevent C++ from deducing the type of template argument.
|
| |
| template<typename T> |
| using | RemoveConst = Type<detail::RemoveConstHelper<T>> |
| |
| template<typename T> |
| using | RemoveVolatile = Type<detail::RemoveVolatile<T>> |
| |
| template<typename T> |
| using | RemoveCV = RemoveConst<RemoveVolatile<T>> |
| |
| template<typename T> |
| using | RemoveReference = Type<detail::RemoveReferenceHelper<T>> |
| |
| template<typename T> |
| using | RemoveCVRef = RemoveCV<RemoveReference<T>> |
| |
| template<bool value, typename T, typename U> |
| using | Conditional = detail::ConditionalHelper<value, T, U>::Type |
| |
| template<template< typename... > typename Fun, typename... Args> |
| using | Defer = detail::DeferHelper<Fun, Args...> |
| |
| template<concepts::MetaInvocable Fun, typename... Args> |
| using | Invoke = Type<Defer<Fun::template Invoke, Args...>> |
| |
| template<concepts::MetaInvocable F, concepts::TypeList T> |
| using | Apply = Type<detail::ApplyHelper<F, T>> |
| |
| template<concepts::MetaInvocable... Funs> |
| using | Compose = detail::ComposeHelper<Funs...> |
| |
| template<concepts::MetaInvocable... Funs> |
| using | Chain = detail::ChainHelper<Funs...> |
| |
| template<concepts::LanguageFunction Fun> |
| using | LanguageFunctionReturn = Type<detail::LanguageFunctionReturnHelper<Fun>> |
| |
| template<typename T> |
| using | RemoveExtent = Type<detail::RemoveExtentHelper<T>> |
| |
| template<typename T> |
| using | RemoveAllExtents = Type<detail::RemoveAllExtentsHelper<T>> |
| |
| template<concepts::MemberPointer T> |
| using | MemberPointerValue = Type<detail::MemberPointerValueHelper<RemoveCV<T>>> |
| |
| template<concepts::MemberPointer T> |
| using | MemberPointerClass = Type<detail::MemberPointerClassHelper<RemoveCV<T>>> |
| |
| template<concepts::Enum T> |
| using | UnderlyingType = __underlying_type(T) |
| |
| template<typename T> |
| using | MakeSigned = detail::MakeSignedHelper<RemoveCV<T>>::Type |
| |
| template<typename T> |
| using | MakeUnsigned = detail::MakeUnsignedHelper<RemoveCV<T>>::Type |
| |
| template<typename T> |
| using | AddConst = T const |
| |
| template<typename T> |
| using | AddVolatile = T volatile |
| |
| template<typename T> |
| using | AddCV = T const volatile |
| |
| template<typename T> |
| using | AddLValueReference = Type<detail::AddLValueReferenceHelper<T>> |
| |
| template<typename T> |
| using | AddRValueReference = Type<detail::AddRValueReferenceHelper<T>> |
| |
| template<typename T> |
| using | AddPointer = Type<detail::AddPointerHelper<T>> |
| | This is a helper template which will convert reference types into their corresponding pointer type, while also working for non-references.
|
| |
| template<typename T, typename U> |
| using | Like = Type<detail::LikeHelper<T, U>> |
| |
| template<typename T> |
| using | RemoveRValueReference = Conditional<concepts::RValueReference<T>, RemoveReference<T>, T> |
| |
| template<typename T> |
| using | RemovePointer = Type<detail::RemovePointerHelper<T>> |
| |
| template<typename T> |
| using | RemoveFunctionQualifiers = Type<detail::RemoveFunctionQualifiersHelper<T>> |
| |
| template<typename T> |
| using | Decay |
| |
| template<concepts::TypeList T> |
| using | Front = T::Front |
| |
| template<concepts::TypeList T> |
| using | Back = T::Back |
| |
| template<concepts::TypeList T, usize index> |
| using | At = typename T::template At<index> |
| |
| template<bool is_const, typename T> |
| using | MaybeConst = Conditional<is_const, T const, T> |
| |
| template<concepts::Expected T> |
| using | ExpectedValue = meta::RemoveCVRef<T>::Value |
| |
| template<concepts::Expected T> |
| using | ExpectedError = meta::RemoveCVRef<T>::Error |
| |
| template<typename T, typename U> |
| using | LikeExpected = Type<detail::LikeExpectedHelper<T, U>> |
| |
| template<typename T> |
| using | UnwrapExpected = Invoke<Conditional<concepts::Expected<T>, meta::Quote<ExpectedValue>, meta::TypeConstant<T>>, T> |
| |
| template<concepts::Optional T> |
| using | OptionalValue = meta::RemoveCVRef<T>::Value |
| |
| template<typename T> |
| using | WrapReference = detail::WrapReference<T>::Type |
| |
| template<typename T> |
| using | UnwrapReference = detail::UnwrapReferenceHelper<T>::Type |
| |
| template<typename T> |
| using | UnwrapRefDecay = UnwrapReference<Decay<T>> |
| |
| template<typename T> |
| using | UnwrapRefRValue = RemoveRValueReference<UnwrapReference<T>> |
| |
| template<concepts::IntoParserContext T> |
| using | AsParserContext = decltype(parser::into_parser_context(util::declval<T>())) |
| |
| template<concepts::ParserContext Context> |
| using | ParserContextError = Context::Error |
| |
| template<typename T, concepts::ParserContext Context> |
| using | ParserContextResult = vocab::Expected<T, meta::ParserContextError<Context>> |
| |
| template<concepts::ParserContext Context, concepts::Parser< Context > Parser> |
| using | ParserValue = meta::ExpectedValue<decltype(util::declval<Parser&>().parse(util::declval<Context&>()))> |
| |
| template<concepts::Reflectable T> |
| using | Reflect = decltype(reflection::reflect(in_place_type<T>)) |
| |
| template<concepts::Deserializer S> |
| using | DeserializationFormat = typename meta::RemoveCVRef<S>::DeserializationFormat |
| |
| template<typename T, typename Reader = any::AnyRef<io::Reader>, typename... Args> |
| using | Deserializer |
| |
| template<typename S, typename T> |
| using | DeserializeResult = meta::LikeExpected<meta::ReaderResult<void, decltype(util::declval<S>().reader())>, T> |
| |
| template<concepts::DeserializationFormat S, typename T> |
| using | DeserializeMetadata = decltype(serialization::deserialize_metadata(in_place_type<T>, in_place_type<S>)) |
| |
| template<concepts::Serializer S> |
| using | SerializationFormat = typename meta::RemoveCVRef<S>::SerializationFormat |
| |
| template<typename T, typename Writer = any::AnyRef<io::Writer>, typename... Args> |
| using | Serializer |
| |
| template<typename S> |
| using | SerializeResult = meta::WriterResult<void, decltype(util::declval<S>().writer())> |
| |
| template<concepts::SerializationFormat S, typename T> |
| using | SerializeMetadata = decltype(serialization::serialize_metadata(in_place_type<T>, in_place_type<S>)) |
| |
| template<template< typename... > typename Template, typename... Args> |
| using | DeduceCreate = decltype(util::deduce_create(in_place_template<Template>, util::declval<Args>()...)) |
| |
| template<typename Args, typename Tag> |
| using | NamedArgument = decltype(util::get_named_argument<Tag>(declval<Args>())) |
| | A metafunction to the type of a named argument.
|
| |
| template<typename Args, typename Tag> |
| using | NamedArgumentValue = meta::Decay<NamedArgument<Args, Tag>> |
| | A metafunction to get the value type of a named argument.
|
| |
| template<typename Args, typename Tag, typename Fallback> |
| using | NamedArgumentOr = decltype(util::get_named_argument_or<Tag>(declval<Args>(), declval<Fallback>())) |
| | A metafunction to get the type of a named argument with fallback.
|
| |
| template<typename Args, typename Tag, typename Fallback> |
| using | NamedArgumentValueOr = meta::Decay<NamedArgumentOr<Args, Tag, Fallback>> |
| | A metafunction to get the value type of a named argument with fallback.
|
| |
| template<typename... Types> |
| using | CommonError = detail::CommonErrorHelper<Types...>::Type |
| |
| template<typename T> |
| using | StatusCodeDomain = detail::StatusCodeDomainHelper<T>::Type |
| |
| template<typename T> |
| using | StatusCodeDomainValue = detail::StatusCodeDomainValueHelper<T>::Type |
| |
| template<typename T, types::size_t index> |
| using | TupleElement = decltype(vocab::tuple_element(types::in_place_type<meta::RemoveReference<T>>, c_<index>))::Type |
| |
| template<concepts::TupleLike Tup> |
| using | TupleElements |
| |
| template<concepts::TupleLike Tup, types::size_t index> |
| using | TupleValue = decltype(util::get<index>(util::declval<Tup>())) |
| |
| template<typename T, size_t index> |
| using | VariantAlternative = decltype(vocab::variant_alternative(in_place_type<meta::RemoveReference<T>>, c_<index>)) |
| |
| template<typename T> |
| using | VariantTypes = decltype(vocab::variant_types(in_place_type<meta::RemoveCVRef<T>>)) |
| |
| template<concepts::VariantLike Var, size_t index> |
| using | VariantValue = decltype(util::get<index>(util::declval<Var>())) |
| |