LeechCraft  0.6.70-9312-g4cc613a2df
Modular cross-platform feature rich live environment.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
LeechCraft::Util::detail Namespace Reference

Classes

struct  InvokableType
 
struct  Dumbifier
 
struct  InvokableResGetter
 
struct  InvokableResGetter< F, List< Args...> >
 
class  Dropper
 
class  LambdaEventFilter
 
struct  CountArgs
 
struct  CountArgs< Container< Args...> >
 
struct  Identity
 
class  StlAssocIteratorAdaptor
 
struct  StlAssocRange
 
struct  StlAssocRange< KeyMF, ValueMF, Iter, Assoc &, PairType >
 
struct  DropImpl
 
struct  DropImpl< 0, List >
 
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<> >
 
class  SharedScopeGuard
 
class  ScopeGuard
 
struct  VisitorBase
 
struct  VisitorBase< Head >
 
struct  Visitor
 
struct  UnwrapFutureTypeBase
 
struct  UnwrapFutureTypeBase< QFuture< T > >
 
struct  UnwrapFutureType
 
struct  IsFuture
 
struct  IsFuture< QFuture< T > >
 
struct  HandlerInvoker
 
struct  HandlerInvoker< void, ResultHandler >
 
class  Sequencer
 Incapsulates the sequencing logic of asynchronous actions. More...
 
class  SequenceProxy
 A proxy object allowing type-checked sequencing of actions and responsible for starting the initial action. More...
 
struct  InitializerBase
 
struct  Initializer
 
struct  Initializer< WorkerType >
 

Typedefs

template<typename T >
using Dumbify = typename Dumbifier< T >::Type_t
 
template<typename F >
using ArgType_t = decltype(TypeGetter(*static_cast< F * >(nullptr)))
 
template<template< typename > class F, typename V >
using MF = typename F< V >::type
 
template<template< template< typename > class, template< typename > class, typename, template< typename, typename > class > class This, template< typename > class KeyMF, template< typename > class ValueMF, typename Iter , template< typename, typename > class PairType, typename KeyType = MF<KeyMF, decltype (Iter {}.key ())>, typename ValueType = MF<ValueMF, decltype (Iter {}.value ())>>
using IteratorAdaptorBase = boost::iterator_adaptor< This< KeyMF, ValueMF, Iter, PairType >, Iter, PairType< KeyType, ValueType >, boost::use_default, PairType< KeyType, ValueType > >
 
using DefaultScopeGuardDeleter = std::function< void()>
 
template<typename T >
using SequencerRetType_t = typename Sequencer< T >::RetType_t
 
template<typename T >
using IsEmptyDestr_t = std::is_same< EmptyDestructionTag, T >
 

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<typename F , typename R >
TypeGetter (R(*)(F))
 
template<typename F >
auto TypeGetter (F &&f) -> decltype(TypeGetter(+f))
 
template<typename C , typename R , typename F >
TypeGetter (R(C::*)(F) const)
 
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 T >
constexpr size_t NewTypeHash (T)
 
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 T , typename F >
constexpr bool IsInvokableWithConstImpl (std::result_of_t< F(const T &)> *)
 
template<typename T , typename F >
constexpr bool IsInvokableWithConstImpl (...)
 
template<typename T , typename F >
constexpr bool IsInvokableWithConst ()
 
template<typename C >
constexpr bool IsSimpleContainer ()
 
template<typename F , typename Cont >
constexpr bool DoesReturnVoid ()
 
template<typename T >
constexpr bool IsCallableImpl (int, std::result_of_t< T()> *=nullptr)
 
template<typename T >
constexpr bool IsCallableImpl (float)
 
template<typename T >
constexpr bool IsCallable ()
 
template<typename ResultHandler , typename RetType , typename = std::result_of_t<ResultHandler (RetType)>>
constexpr bool IsCompatibleImpl (int)
 
template<typename , typename >
constexpr bool IsCompatibleImpl (float)
 
template<typename ResultHandler , typename = std::result_of_t<ResultHandler ()>>
constexpr bool IsCompatibleImplVoid (int)
 
template<typename >
constexpr bool IsCompatibleImplVoid (float)
 
template<typename ResultHandler , typename RetType >
constexpr bool IsCompatible ()
 
template<typename Ret , typename DestrType , typename = std::enable_if_t<IsEmptyDestr_t<DestrType>::value>>
void InvokeDestructionHandler (const std::function< DestrType()> &, QFutureInterface< Ret > &, float)
 
template<typename Ret , typename DestrType , typename = std::enable_if_t<!IsEmptyDestr_t<DestrType>::value>>
void InvokeDestructionHandler (const std::function< DestrType()> &handler, QFutureInterface< Ret > &iface, int)
 

Variables

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

Typedef Documentation

template<typename F >
using LeechCraft::Util::detail::ArgType_t = typedef decltype (TypeGetter (*static_cast<F*> (nullptr)))

Definition at line 56 of file lambdaeventfilter.h.

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

Definition at line 42 of file util.h.

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

Definition at line 86 of file dropargs.h.

template<typename T >
using LeechCraft::Util::detail::IsEmptyDestr_t = typedef std::is_same<EmptyDestructionTag, T>

Definition at line 460 of file futures.h.

template<template< template< typename > class, template< typename > class, typename, template< typename, typename > class > class This, template< typename > class KeyMF, template< typename > class ValueMF, typename Iter , template< typename, typename > class PairType, typename KeyType = MF<KeyMF, decltype (Iter {}.key ())>, typename ValueType = MF<ValueMF, decltype (Iter {}.value ())>>
using LeechCraft::Util::detail::IteratorAdaptorBase = typedef boost::iterator_adaptor< This<KeyMF, ValueMF, Iter, PairType>, Iter, PairType<KeyType, ValueType>, boost::use_default, PairType<KeyType, ValueType> >

Definition at line 66 of file qtutil.h.

template<template< typename > class F, typename V >
using LeechCraft::Util::detail::MF = typedef typename F<V>::type

Definition at line 43 of file qtutil.h.

template<typename T >
using LeechCraft::Util::detail::SequencerRetType_t = typedef typename Sequencer<T>::RetType_t

Definition at line 455 of file futures.h.

Function Documentation

template<typename Res , typename T >
void LeechCraft::Util::detail::Append ( Res &  result,
T &&  val,
decltype(result.push_back(std::forward< T >(val)))*  = nullptr 
)

Definition at line 86 of file prelude.h.

Referenced by LeechCraft::Util::Filter(), and LeechCraft::Util::Map().

+ Here is the caller graph for this function:

template<typename Res , typename T >
void LeechCraft::Util::detail::Append ( Res &  result,
T &&  val,
decltype(result.insert(std::forward< T >(val)))*  = nullptr 
)

Definition at line 92 of file prelude.h.

template<typename T >
constexpr T* LeechCraft::Util::detail::declptr ( )
noexcept

Definition at line 70 of file monad.h.

template<typename F , typename Cont >
constexpr bool LeechCraft::Util::detail::DoesReturnVoid ( )

Definition at line 134 of file prelude.h.

References LeechCraft::Util::Invoke().

+ Here is the call graph for this function:

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

Definition at line 68 of file dropargs.h.

Referenced by LeechCraft::Util::detail::Dropper< F >::operator()().

+ Here is the caller graph for this function:

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

Definition at line 41 of file dropargs.h.

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

Definition at line 47 of file dropargs.h.

template<typename F , template< typename...> class List, typename... Args>
constexpr auto LeechCraft::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.

template<typename Ret , typename DestrType , typename = std::enable_if_t<IsEmptyDestr_t<DestrType>::value>>
void LeechCraft::Util::detail::InvokeDestructionHandler ( const std::function< DestrType()> &  ,
QFutureInterface< Ret > &  ,
float   
)

Definition at line 463 of file futures.h.

template<typename Ret , typename DestrType , typename = std::enable_if_t<!IsEmptyDestr_t<DestrType>::value>>
void LeechCraft::Util::detail::InvokeDestructionHandler ( const std::function< DestrType()> &  handler,
QFutureInterface< Ret > &  iface,
int   
)

Definition at line 468 of file futures.h.

template<typename T >
constexpr bool LeechCraft::Util::detail::IsCallable ( )

Definition at line 102 of file futures.h.

template<typename T >
constexpr bool LeechCraft::Util::detail::IsCallableImpl ( int  ,
std::result_of_t< T()> *  = nullptr 
)

Definition at line 90 of file futures.h.

template<typename T >
constexpr bool LeechCraft::Util::detail::IsCallableImpl ( float  )

Definition at line 96 of file futures.h.

template<typename ResultHandler , typename RetType >
constexpr bool LeechCraft::Util::detail::IsCompatible ( )

Definition at line 193 of file futures.h.

template<typename ResultHandler , typename RetType , typename = std::result_of_t<ResultHandler (RetType)>>
constexpr bool LeechCraft::Util::detail::IsCompatibleImpl ( int  )

Definition at line 169 of file futures.h.

template<typename , typename >
constexpr bool LeechCraft::Util::detail::IsCompatibleImpl ( float  )

Definition at line 175 of file futures.h.

template<typename ResultHandler , typename = std::result_of_t<ResultHandler ()>>
constexpr bool LeechCraft::Util::detail::IsCompatibleImplVoid ( int  )

Definition at line 181 of file futures.h.

template<typename >
constexpr bool LeechCraft::Util::detail::IsCompatibleImplVoid ( float  )

Definition at line 187 of file futures.h.

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

Definition at line 76 of file monad.h.

References IsCompatibleMonadImpl().

Referenced by LeechCraft::Util::Bind().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 55 of file monad.h.

Referenced by IsCompatibleMonad().

+ Here is the caller graph for this function:

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

Definition at line 64 of file monad.h.

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

Definition at line 92 of file functor.h.

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

Definition at line 98 of file functor.h.

template<typename T , typename F >
constexpr bool LeechCraft::Util::detail::IsInvokableWithConst ( )

Definition at line 110 of file prelude.h.

template<typename T , typename F >
constexpr bool LeechCraft::Util::detail::IsInvokableWithConstImpl ( std::result_of_t< F(const T &)> *  )

Definition at line 98 of file prelude.h.

template<typename T , typename F >
constexpr bool LeechCraft::Util::detail::IsInvokableWithConstImpl (   ...)

Definition at line 104 of file prelude.h.

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

Definition at line 48 of file monadplus.h.

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

Definition at line 54 of file monadplus.h.

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

Definition at line 128 of file prelude.h.

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

Definition at line 74 of file dropargs.h.

Referenced by LeechCraft::Util::detail::Dropper< F >::operator()().

+ Here is the caller graph for this function:

template<typename T >
constexpr size_t LeechCraft::Util::detail::NewTypeHash ( )

Definition at line 90 of file newtype.h.

template<typename F , typename R >
F LeechCraft::Util::detail::TypeGetter ( R(*)(F)  )
template<typename F >
auto LeechCraft::Util::detail::TypeGetter ( F &&  f) -> decltype(TypeGetter(+f))
template<typename C , typename R , typename F >
F LeechCraft::Util::detail::TypeGetter ( R(C::*)(F)  const)

Variable Documentation

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

Definition at line 53 of file lambdaeventfilter.h.