![]() |
LeechCraft
0.6.70-13729-g7046a9d2a7
Modular cross-platform feature rich live environment.
|
Typedefs | |
template<typename T > | |
using | Dumbify = typename Dumbifier< T >::Type_t |
template<typename T > | |
using | WrapVoidResult_t = typename WrapVoidResult< T >::Type |
template<typename T > | |
using | VoidSafe = std::conditional_t< std::is_same< T, void > {}, ReturnsVoid, T > |
template<typename F > | |
using | RetTypeRaw_t = std::tuple_element_t< 0, decltype(TypeGetter(*static_cast< F * >(nullptr)))> |
using | DefaultScopeGuardDeleter = std::function< void()> |
Functions | |
template<typename F , template< typename... > class List, typename... Args> | |
constexpr List< Args... > | GetInvokablePartImpl (int, List< Args... >, typename std::result_of< F(Args...)>::type *=nullptr) |
template<typename F , template< typename... > class List> | |
constexpr Typelist | GetInvokablePartImpl (float, List<>) |
template<typename F , template< typename... > class List, typename... Args> | |
constexpr auto | GetInvokablePartImpl (float, List< Args... > list) -> typename InvokableType< F, decltype(Reverse(Tail(Reverse(list))))>::RetType_t |
template<typename F , typename... Args> | |
constexpr auto | GetInvokablePart () -> decltype(GetInvokablePartImpl< F >(0, Typelist< Args... > |
template<template< typename... > class List, typename... Args> | |
constexpr size_t | Length (List< Args... >) |
template<typename T > | |
constexpr bool | IsFunctorImpl (int, typename InstanceFunctor< T >::UndefinedTag *=nullptr) |
template<typename T > | |
constexpr bool | IsFunctorImpl (float) |
template<template< typename... > class Monad, typename... Args1, typename... Args2> | |
constexpr bool | IsCompatibleMonadImpl (const Monad< Args1... > *, const Monad< Args2... > *, int) |
template<typename T1 , typename T2 > | |
constexpr bool | IsCompatibleMonadImpl (const T1 *, const T2 *,...) |
template<typename T > | |
constexpr T * | declptr () noexcept |
template<typename T1 , typename T2 > | |
constexpr bool | IsCompatibleMonad () |
template<typename T > | |
constexpr bool | IsMonadPlusImpl (int, typename InstanceMonadPlus< T >::UndefinedTag *=nullptr) |
template<typename T > | |
constexpr bool | IsMonadPlusImpl (float) |
constexpr size_t | NewTypeHash (const char *str) |
template<typename Res , typename T > | |
void | Append (Res &result, T &&val, decltype(result.push_back(std::forward< T >(val))) *=nullptr) |
template<typename Res , typename T > | |
void | Append (Res &result, T &&val, decltype(result.insert(std::forward< T >(val))) *=nullptr) |
template<typename C > | |
constexpr bool | IsSimpleContainer () |
template<template< typename... > class Fallback, bool ForceFallback, typename Container , typename F > | |
auto | MapImpl (Container &&c, F f) |
template<typename R , typename... Args> | |
std::tuple< VoidSafe< R >, Args... > | TypeGetter (R(*)(Args...)) |
template<typename F > | |
auto | TypeGetter (F &&f) -> decltype(TypeGetter(+f)) |
template<typename C , typename R , typename... Args> | |
std::tuple< VoidSafe< R >, Args... > | TypeGetter (R(C::*)(Args...) const) |
template<class... Ts> | |
Overloaded (Ts...) -> Overloaded< Ts... > | |
Variables | |
template<typename T > | |
constexpr bool | IsNotBrokenSFINAE_v = IsNotBrokenSFINAE<T> {} |
template<typename C > | |
decltype(TypeGetter(&C::operator())) | TypeGetter (const C &c) |
using LC::Util::detail::DefaultScopeGuardDeleter = typedef std::function<void ()> |
using LC::Util::detail::Dumbify = typedef typename Dumbifier<T>::Type_t |
Definition at line 86 of file dropargs.h.
using LC::Util::detail::RetTypeRaw_t = typedef std::tuple_element_t<0, decltype (TypeGetter (*static_cast<F*> (nullptr)))> |
Definition at line 66 of file typegetter.h.
using LC::Util::detail::VoidSafe = typedef std::conditional_t< std::is_same<T, void> {}, ReturnsVoid, T > |
Definition at line 48 of file typegetter.h.
using LC::Util::detail::WrapVoidResult_t = typedef typename WrapVoidResult<T>::Type |
void LC::Util::detail::Append | ( | Res & | result, |
T && | val, | ||
decltype(result.push_back(std::forward< T >(val))) * | = nullptr |
||
) |
Definition at line 91 of file prelude.h.
Referenced by LC::Util::Concat(), LC::Util::Filter(), and MapImpl().
void LC::Util::detail::Append | ( | Res & | result, |
T && | val, | ||
decltype(result.insert(std::forward< T >(val))) * | = nullptr |
||
) |
|
noexcept |
constexpr auto LC::Util::detail::GetInvokablePart | ( | ) | -> decltype (GetInvokablePartImpl<F> (0, Typelist<Args...> |
Definition at line 68 of file dropargs.h.
Referenced by LC::Util::detail::Dropper< F >::operator()().
constexpr List<Args...> LC::Util::detail::GetInvokablePartImpl | ( | int | , |
List< Args... > | , | ||
typename std::result_of< F(Args...)>::type * | = nullptr |
||
) |
Definition at line 41 of file dropargs.h.
constexpr Typelist LC::Util::detail::GetInvokablePartImpl | ( | float | , |
List<> | |||
) |
Definition at line 47 of file dropargs.h.
constexpr auto LC::Util::detail::GetInvokablePartImpl | ( | float | , |
List< Args... > | list | ||
) | -> typename InvokableType<F, decltype (Reverse (Tail (Reverse (list))))>::RetType_t |
Definition at line 56 of file dropargs.h.
constexpr bool LC::Util::detail::IsCompatibleMonad | ( | ) |
Definition at line 77 of file monad.h.
References IsCompatibleMonadImpl().
Referenced by LC::Util::Bind().
constexpr bool LC::Util::detail::IsCompatibleMonadImpl | ( | const Monad< Args1... > * | , |
const Monad< Args2... > * | , | ||
int | |||
) |
Definition at line 56 of file monad.h.
Referenced by IsCompatibleMonad().
constexpr bool LC::Util::detail::IsCompatibleMonadImpl | ( | const T1 * | , |
const T2 * | , | ||
... | |||
) |
constexpr bool LC::Util::detail::IsFunctorImpl | ( | int | , |
typename InstanceFunctor< T >::UndefinedTag * | = nullptr |
||
) |
constexpr bool LC::Util::detail::IsFunctorImpl | ( | float | ) |
constexpr bool LC::Util::detail::IsMonadPlusImpl | ( | int | , |
typename InstanceMonadPlus< T >::UndefinedTag * | = nullptr |
||
) |
Definition at line 49 of file monadplus.h.
constexpr bool LC::Util::detail::IsMonadPlusImpl | ( | float | ) |
Definition at line 55 of file monadplus.h.
constexpr bool LC::Util::detail::IsSimpleContainer | ( | ) |
constexpr size_t LC::Util::detail::Length | ( | List< Args... > | ) |
Definition at line 74 of file dropargs.h.
Referenced by LC::Util::detail::Dropper< F >::operator()().
auto LC::Util::detail::MapImpl | ( | Container && | c, |
F | f | ||
) |
Definition at line 142 of file prelude.h.
References Append(), and LC::Util::oral::sph::f.
constexpr size_t LC::Util::detail::NewTypeHash | ( | const char * | str | ) |
LC::Util::detail::Overloaded | ( | Ts... | ) | -> Overloaded< Ts... > |
std::tuple<VoidSafe<R>, Args...> LC::Util::detail::TypeGetter | ( | R(*)(Args...) | ) |
auto LC::Util::detail::TypeGetter | ( | F && | f | ) | -> decltype(TypeGetter(+f)) |
std::tuple< VoidSafe< R >, Args... > LC::Util::detail::TypeGetter | ( | R(C::*)(Args...) | const | ) |
constexpr bool LC::Util::detail::IsNotBrokenSFINAE_v = IsNotBrokenSFINAE<T> {} |
decltype(TypeGetter (&C::operator ())) LC::Util::detail::TypeGetter(const C &c) |
Definition at line 63 of file typegetter.h.