LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
LC::Util::detail Namespace Reference

Classes

struct  Any
 
struct  CountArgs
 
struct  CountArgs< Container< Args... > >
 
struct  DecomposeMemberPtr
 
struct  DecomposeMemberPtr< R(C::*)>
 
class  DomSiblingsIterator
 
struct  DropImpl
 
struct  DropImpl< 0, List >
 
class  Dropper
 
struct  Dumbifier
 
struct  FC
 
struct  Filter< Pred, List< Head, Tail... >, std::enable_if_t< Pred< Head >::value > >
 
struct  Filter< Pred, List< Head, Tail... >, std::enable_if_t<!Pred< Head >::value > >
 
struct  Filter< Pred, List<> >
 
struct  Find
 
struct  Find< Name, Def >
 
struct  Find< Name, Def, Name< T >, Rest... >
 
struct  Find< Name, Def, T, Rest... >
 
struct  Initializer
 
struct  Initializer< WorkerType >
 
struct  InitializerBase
 
struct  InvokableResGetter
 
struct  InvokableResGetter< F, List< Args... > >
 
struct  InvokableType
 
struct  IsDetected
 
struct  IsDetected< Default, std::void_t< Op< Args... > >, Op, Args... >
 
struct  IsNotBrokenSFINAE
 
struct  IsNotBrokenSFINAE< boost::iterator_range< T > >
 
class  LambdaEventFilter
 
struct  Overloaded
 
struct  Replace
 
struct  Replace< Container< U >, T >
 
class  ScopeGuard
 
class  SharedScopeGuard
 
struct  VisitorBase
 
struct  VisitorFinallyTag
 
struct  WrapVoidResult
 
struct  WrapVoidResult< void >
 

Typedefs

template<typename T >
using Dumbify = typename Dumbifier< T >::Type_t
 
template<typename T >
using WrapVoidResult_t = typename WrapVoidResult< T >::Type
 
using DefaultScopeGuardDeleter = std::function< void()>
 

Functions

template<typename T >
constexpr int GetFieldsCount ()
 
template<typename T >
QVariant GetFieldImpl (const T &item, int idx, FC< 1 >)
 
template<typename T >
QVariant GetFieldImpl (const T &item, int idx, FC< 2 >)
 
template<typename T >
QVariant GetFieldImpl (const T &item, int idx, FC< 3 >)
 
template<typename T >
QVariant GetFieldImpl (const T &item, int idx, FC< 4 >)
 
template<typename T >
QVariant GetFieldImpl (const T &item, int idx, FC< 5 >)
 
template<typename T >
QVariant GetFieldImpl (const T &item, int idx, FC< 6 >)
 
template<typename T >
QVariant GetField (const T &item, int idx)
 
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)
 
template<typename Res , typename T >
void Append (Res &result, T &&val) noexcept
 
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< R, Args... > TypeGetter (R(*)(Args...))
 
template<typename F >
auto TypeGetter (F &&f) -> decltype(TypeGetter(+f))
 
template<typename C , typename R , typename... Args>
std::tuple< 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)
 

Typedef Documentation

◆ DefaultScopeGuardDeleter

using LC::Util::detail::DefaultScopeGuardDeleter = typedef std::function<void ()>

Definition at line 39 of file util.h.

◆ Dumbify

template<typename T >
using LC::Util::detail::Dumbify = typedef typename Dumbifier<T>::Type_t

Definition at line 83 of file dropargs.h.

◆ WrapVoidResult_t

template<typename T >
using LC::Util::detail::WrapVoidResult_t = typedef typename WrapVoidResult<T>::Type

Definition at line 212 of file functor.h.

Function Documentation

◆ Append()

template<typename Res , typename T >
void LC::Util::detail::Append ( Res &  result,
T &&  val 
)
noexcept

Definition at line 70 of file prelude.h.

Referenced by LC::Util::Concat(), LC::Util::Filter(), and MapImpl().

+ Here is the caller graph for this function:

◆ declptr()

template<typename T >
constexpr T* LC::Util::detail::declptr ( )
constexprnoexcept

Definition at line 62 of file monad.h.

References LC::Util::Bind(), LC::Util::oral::sph::f, and IsCompatibleMonad().

+ Here is the call graph for this function:

◆ GetField()

template<typename T >
QVariant LC::Util::detail::GetField ( const T &  item,
int  idx 
)

Definition at line 169 of file flatitemsmodel.h.

◆ GetFieldImpl() [1/6]

template<typename T >
QVariant LC::Util::detail::GetFieldImpl ( const T &  item,
int  idx,
FC< 1 >   
)

Definition at line 61 of file flatitemsmodel.h.

◆ GetFieldImpl() [2/6]

template<typename T >
QVariant LC::Util::detail::GetFieldImpl ( const T &  item,
int  idx,
FC< 2 >   
)

Definition at line 74 of file flatitemsmodel.h.

◆ GetFieldImpl() [3/6]

template<typename T >
QVariant LC::Util::detail::GetFieldImpl ( const T &  item,
int  idx,
FC< 3 >   
)

Definition at line 89 of file flatitemsmodel.h.

◆ GetFieldImpl() [4/6]

template<typename T >
QVariant LC::Util::detail::GetFieldImpl ( const T &  item,
int  idx,
FC< 4 >   
)

Definition at line 106 of file flatitemsmodel.h.

◆ GetFieldImpl() [5/6]

template<typename T >
QVariant LC::Util::detail::GetFieldImpl ( const T &  item,
int  idx,
FC< 5 >   
)

Definition at line 125 of file flatitemsmodel.h.

◆ GetFieldImpl() [6/6]

template<typename T >
QVariant LC::Util::detail::GetFieldImpl ( const T &  item,
int  idx,
FC< 6 >   
)

Definition at line 146 of file flatitemsmodel.h.

◆ GetFieldsCount()

template<typename T >
constexpr int LC::Util::detail::GetFieldsCount ( )
constexpr

Definition at line 40 of file flatitemsmodel.h.

◆ GetInvokablePart()

template<typename F , typename... Args>
constexpr auto LC::Util::detail::GetInvokablePart ( ) -> decltype (GetInvokablePartImpl<F> (0, Typelist<Args...>
constexpr

Definition at line 65 of file dropargs.h.

◆ GetInvokablePartImpl() [1/3]

template<typename F , template< typename... > class List, typename... Args>
constexpr auto LC::Util::detail::GetInvokablePartImpl ( float  ,
List< Args... >  list 
) -> typename InvokableType<F, decltype (Reverse (Tail (Reverse (list))))>::RetType_t
constexpr

Definition at line 53 of file dropargs.h.

◆ GetInvokablePartImpl() [2/3]

template<typename F , template< typename... > class List>
constexpr Typelist LC::Util::detail::GetInvokablePartImpl ( float  ,
List<>   
)
constexpr

Definition at line 44 of file dropargs.h.

◆ GetInvokablePartImpl() [3/3]

template<typename F , template< typename... > class List, typename... Args>
constexpr List<Args...> LC::Util::detail::GetInvokablePartImpl ( int  ,
List< Args... >  ,
typename std::result_of< F(Args...)>::type *  = nullptr 
)
constexpr

Definition at line 38 of file dropargs.h.

◆ IsCompatibleMonad()

template<typename T1 , typename T2 >
constexpr bool LC::Util::detail::IsCompatibleMonad ( )
constexpr

Definition at line 68 of file monad.h.

Referenced by declptr().

+ Here is the caller graph for this function:

◆ IsCompatibleMonadImpl() [1/2]

template<template< typename... > class Monad, typename... Args1, typename... Args2>
constexpr bool LC::Util::detail::IsCompatibleMonadImpl ( const Monad< Args1... > *  ,
const Monad< Args2... > *  ,
int   
)
constexpr

Definition at line 47 of file monad.h.

Referenced by IsCompatibleMonadImpl().

+ Here is the caller graph for this function:

◆ IsCompatibleMonadImpl() [2/2]

template<typename T1 , typename T2 >
constexpr bool LC::Util::detail::IsCompatibleMonadImpl ( const T1 *  ,
const T2 *  ,
  ... 
)
constexpr

Definition at line 56 of file monad.h.

References IsCompatibleMonadImpl().

+ Here is the call graph for this function:

◆ IsFunctorImpl() [1/2]

template<typename T >
constexpr bool LC::Util::detail::IsFunctorImpl ( float  )
constexpr

Definition at line 91 of file functor.h.

◆ IsFunctorImpl() [2/2]

template<typename T >
constexpr bool LC::Util::detail::IsFunctorImpl ( int  ,
typename InstanceFunctor< T >::UndefinedTag *  = nullptr 
)
constexpr

Definition at line 85 of file functor.h.

◆ IsMonadPlusImpl() [1/2]

template<typename T >
constexpr bool LC::Util::detail::IsMonadPlusImpl ( float  )
constexpr

Definition at line 45 of file monadplus.h.

References LC::Util::Mzero().

+ Here is the call graph for this function:

◆ IsMonadPlusImpl() [2/2]

template<typename T >
constexpr bool LC::Util::detail::IsMonadPlusImpl ( int  ,
typename InstanceMonadPlus< T >::UndefinedTag *  = nullptr 
)
constexpr

Definition at line 39 of file monadplus.h.

◆ IsSimpleContainer()

template<typename C >
constexpr bool LC::Util::detail::IsSimpleContainer ( )
constexpr

Definition at line 91 of file prelude.h.

◆ Length()

template<template< typename... > class List, typename... Args>
constexpr size_t LC::Util::detail::Length ( List< Args... >  )
constexpr

Definition at line 71 of file dropargs.h.

◆ MapImpl()

template<template< typename... > class Fallback, bool ForceFallback, typename Container , typename F >
auto LC::Util::detail::MapImpl ( Container &&  c,
f 
)

Definition at line 118 of file prelude.h.

References Append(), and LC::Util::oral::sph::f.

+ Here is the call graph for this function:

◆ Overloaded()

template<class... Ts>
LC::Util::detail::Overloaded ( Ts...  ) -> Overloaded< Ts... >

◆ TypeGetter() [1/3]

template<typename F >
auto LC::Util::detail::TypeGetter ( F &&  f) -> decltype(TypeGetter(+f))

◆ TypeGetter() [2/3]

template<typename R , typename... Args>
std::tuple<R, Args...> LC::Util::detail::TypeGetter ( R(*)(Args...)  )

◆ TypeGetter() [3/3]

template<typename C , typename R , typename... Args>
std::tuple< R, Args... > LC::Util::detail::TypeGetter ( R(C::*)(Args...) const  )

Variable Documentation

◆ IsNotBrokenSFINAE_v

template<typename T >
constexpr bool LC::Util::detail::IsNotBrokenSFINAE_v = IsNotBrokenSFINAE<T> {}
constexpr

Definition at line 115 of file prelude.h.

◆ TypeGetter

template<typename C >
decltype(TypeGetter (&C::operator ())) LC::Util::detail::TypeGetter(const C &c)

Definition at line 42 of file typegetter.h.