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 |