Classes | |
| class | BindBackFunction |
| class | BindBackFunction< meta::ListV< indices... >, F, BoundArgs... > |
| class | BindFrontFunction |
| class | BindFrontFunction< meta::ListV< indices... >, F, BoundArgs... > |
| class | ChainFunction |
| class | ComposeFunction |
| struct | FlipFunction |
| class | GeneratorIterator |
| class | GeneratorPromiseBase |
| struct | IndexDispatch |
| struct | IndexDispatchImpl |
| struct | IntoVoidFunction |
| struct | InvokeFunction |
| struct | InvokeRFunction |
| struct | MakeDeferredFunction |
| class | MakeDeferredFunctor |
| class | NotFnFunction |
| struct | OverloadFunction |
| struct | OverloadImpl |
| class | PipedFunction |
| struct | UncurryFunction |
| class | UncurryImpl |
| struct | UnpackFunction |
| struct | UnpackFunction< meta::ListV< values... > > |
| struct | Value |
| struct | ValueFunction |
| struct | YCombinator |
| struct | YCombinatorFunction |
Concepts | |
| concept | TupleInvoceable |
| concept | CanUncurry |
Typedefs | |
| template<typename Ref, typename Value> | |
| using | GeneratorValue = meta::Conditional<concepts::LanguageVoid<Value>, meta::RemoveCVRef<Ref>, Value> |
| template<typename Ref, typename Value> | |
| using | GeneratorReference = meta::Conditional<concepts::LanguageVoid<Value>, Ref&&, Ref> |
| template<typename Ref> | |
| using | GeneratorYield = meta::Conditional<concepts::Reference<Ref>, Ref, Ref const&> |
| template<typename... Args> | |
| using | AsTuple = decltype(detail::do_tuple_cat(di::declval<Args>()...)) |
Functions | |
| template<concepts::MemberFunctionPointer F, typename FirstArg, typename... Args> requires (concepts::BaseOf<meta::MemberPointerClass<F>, meta::Decay<FirstArg>>) | |
| constexpr auto | invoke_impl (F f, FirstArg &&first_arg, Args &&... args) -> decltype((util::forward< FirstArg >(first_arg).*f)(util::forward< Args >(args)...)) |
| template<concepts::MemberFunctionPointer F, typename FirstArg, typename... Args> requires (concepts::ReferenceWrapper<meta::Decay<FirstArg>>) | |
| constexpr auto | invoke_impl (F f, FirstArg &&first_arg, Args &&... args) -> decltype((first_arg.get().*f)(util::forward< Args >(args)...)) |
| template<concepts::MemberFunctionPointer F, typename FirstArg, typename... Args> | |
| constexpr auto | invoke_impl (F f, FirstArg &&first_arg, Args &&... args) -> decltype(((*util::forward< FirstArg >(first_arg)).*f)(util::forward< Args >(args)...)) |
| template<concepts::MemberObjectPointer F, typename Arg> requires (concepts::BaseOf<meta::MemberPointerClass<F>, meta::Decay<Arg>>) | |
| constexpr auto | invoke_impl (F f, Arg &&arg) -> decltype(util::forward< Arg >(arg).*f) |
| template<concepts::MemberObjectPointer F, typename Arg> requires (concepts::ReferenceWrapper<meta::Decay<Arg>>) | |
| constexpr auto | invoke_impl (F f, Arg &&arg) -> decltype(arg.get().*f) |
| template<concepts::MemberObjectPointer F, typename Arg> | |
| constexpr auto | invoke_impl (F f, Arg &&arg) -> decltype((*util::forward< Arg >(arg)).*f) |
| template<typename F, typename... Args> | |
| constexpr auto | invoke_impl (F &&f, Args &&... args) -> decltype(util::forward< F >(f)(util::forward< Args >(args)...)) |
| template<typename... Funs> | |
| OverloadImpl (Funs &&...) -> OverloadImpl< Funs... > | |
| template<concepts::TupleLike Tup> | |
| constexpr auto | tuple_forward (Tup &&tuple) |
| template<typename T> | |
| constexpr auto | tuple_forward (T &&value) |
| template<typename... Args> | |
| constexpr auto | do_tuple_cat (Args &&... args) |
| using di::function::detail::AsTuple = decltype(detail::do_tuple_cat(di::declval<Args>()...)) |
| using di::function::detail::GeneratorReference = meta::Conditional<concepts::LanguageVoid<Value>, Ref&&, Ref> |
| using di::function::detail::GeneratorValue = meta::Conditional<concepts::LanguageVoid<Value>, meta::RemoveCVRef<Ref>, Value> |
| using di::function::detail::GeneratorYield = meta::Conditional<concepts::Reference<Ref>, Ref, Ref const&> |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
| di::function::detail::OverloadImpl | ( | Funs && | ... | ) | -> OverloadImpl< Funs... > |
|
constexpr |
|
constexpr |