LeechCraft  0.6.70-6645-gcd10d7e
Modular cross-platform feature rich live environment.
LeechCraft::Util::detail Namespace Reference

Classes

struct  ComparingByClosure
 
struct  DropImpl
 
struct  DropImpl< 0, List >
 
class  Dropper
 
struct  Dumbifier
 
struct  Filter< Pred, List< Head, Tail... >, EnableIf_t< Pred< Head >::value > >
 
struct  Filter< Pred, List< Head, Tail... >, EnableIf_t<!Pred< Head >::value > >
 
struct  Filter< Pred, List<> >
 
struct  Fst
 
struct  HandlerInvoker
 
struct  HandlerInvoker< void, ResultHandler >
 
struct  InvokableResGetter
 
struct  InvokableResGetter< F, List< Args... > >
 
struct  InvokableType
 
struct  IsFuture
 
struct  IsFuture< QFuture< T > >
 
class  ScopeGuard
 
class  SequenceProxy
 A proxy object allowing type-checked sequencing of actions and responsible for starting the initial action. More...
 
class  Sequencer
 Incapsulates the sequencing logic of asynchronous actions. More...
 
struct  Snd
 
class  StlAssocIteratorAdaptor
 
struct  StlAssocRange
 
struct  StlAssocRange< Iter, Assoc &, PairType >
 
struct  UnwrapFutureType
 
struct  UnwrapFutureTypeBase
 
struct  UnwrapFutureTypeBase< QFuture< T > >
 
struct  Visitor
 
struct  VisitorBase
 
struct  VisitorBase< Head >
 

Typedefs

template<typename T >
using Dumbify = typename Dumbifier< T >::Type_t
 
template<template< typename, template< typename, typename > class > class This, typename Iter , template< typename, typename > class PairType>
using IteratorAdaptorBase = boost::iterator_adaptor< This< Iter, PairType >, Iter, PairType< decltype(Iter{}.key()), decltype(Iter{}.value())>, boost::use_default, PairType< decltype(Iter{}.key()), decltype(Iter{}.value())> >
 
using DefaultScopeGuardDeleter = std::function< void()>
 
template<typename T >
using UnwrapFutureType_t = typename UnwrapFutureType< T >::type
 
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<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 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 (typename std::result_of< F(const T &)>::type *)
 
template<typename T , typename F >
constexpr bool IsInvokableWithConstImpl (...)
 
template<typename T , typename F >
constexpr bool IsInvokableWithConst ()
 
template<template< typename > class Cont, typename T >
constexpr bool IsSimpleContainer ()
 
template<typename C >
constexpr bool IsSimpleContainer ()
 
template<typename ResultHandler , typename RetType , typename = ResultOf_t<ResultHandler (RetType)>>
constexpr bool IsCompatibleImpl (int)
 
template<typename , typename >
constexpr bool IsCompatibleImpl (float)
 
template<typename ResultHandler , typename = ResultOf_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 = EnableIf_t<IsEmptyDestr_t<DestrType>::value>>
void InvokeDestructionHandler (const std::function< DestrType()> &, QFutureInterface< Ret > &, float)
 
template<typename Ret , typename DestrType , typename = EnableIf_t<!IsEmptyDestr_t<DestrType>::value>>
void InvokeDestructionHandler (const std::function< DestrType()> &handler, QFutureInterface< Ret > &iface, int)
 

Typedef Documentation

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

Definition at line 40 of file util.h.

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

Definition at line 87 of file dropargs.h.

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

Definition at line 391 of file futures.h.

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

Definition at line 51 of file qtutil.h.

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

Definition at line 386 of file futures.h.

template<typename T >
using LeechCraft::Util::detail::UnwrapFutureType_t = typedef typename UnwrapFutureType<T>::type

Definition at line 104 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::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 71 of file monad.h.

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

Definition at line 69 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 42 of file dropargs.h.

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

Definition at line 48 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 57 of file dropargs.h.

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

Definition at line 394 of file futures.h.

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

Definition at line 399 of file futures.h.

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

Definition at line 161 of file futures.h.

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

Definition at line 137 of file futures.h.

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

Definition at line 143 of file futures.h.

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

Definition at line 149 of file futures.h.

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

Definition at line 155 of file futures.h.

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

Definition at line 77 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 56 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 65 of file monad.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 ( typename std::result_of< F(const T &)>::type *  )

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<template< typename > class Cont, typename T >
constexpr bool LeechCraft::Util::detail::IsSimpleContainer ( )

Definition at line 116 of file prelude.h.

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

Definition at line 122 of file prelude.h.

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

Definition at line 75 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.

Referenced by LeechCraft::Util::NewType< T, size_t, size_t >::NewType().

+ Here is the caller graph for this function: