GrPPI  1.0
Generic and Reusable Parallel Pattern Interface
Classes | Typedefs | Functions
grppi::internal Namespace Reference

Classes

struct  identity
 Identity type trait. More...
 
struct  callable_helper
 
struct  callable_helper< R(Args...)>
 
struct  callable_helper< R(*)(Args...)>
 
struct  callable_helper< R(C::*)(Args...) const >
 
struct  callable_helper< R(C::*)(Args...)>
 
struct  callable
 
struct  is_context
 
struct  is_context< context_t< E, T > >
 
struct  is_farm
 
struct  is_farm< farm_t< T > >
 
struct  is_filter
 
struct  is_filter< filter_t< T > >
 
struct  is_iteration
 
struct  is_iteration< iteration_t< T, P > >
 
struct  is_iterator
 
struct  is_iterator< T, typename std::enable_if<!std::is_same< typename std::iterator_traits< T >::value_type, void >::value >::type >
 
struct  are_iterators
 
struct  are_iterators< T >
 
struct  is_queue
 
struct  is_queue< mpmc_queue< T > >
 
struct  is_pipeline
 
struct  is_pipeline< pipeline_t< T... > >
 
struct  output_value_type
 
struct  output_value_type< I, pipeline_t< T, U... > >
 
struct  is_reduce
 
struct  is_reduce< reduce_t< C, I > >
 

Typedefs

template<int Index, typename ... T>
using requires_index_last = std::enable_if_t<(Index==(sizeof...(T) - 1)), int >
 
template<int Index, typename ... T>
using requires_index_not_last = std::enable_if_t<(Index< sizeof...(T) - 1), int >
 

Functions

template<typename T >
constexpr size_t callable_arity ()
 
template<typename G >
constexpr bool has_void_return ()
 
template<typename F , typename I >
constexpr bool has_void_return ()
 
template<typename F >
constexpr bool has_arguments ()
 
template<typename F , typename ... Iterators, template< typename... > class T, std::size_t ... I>
decltype(auto) apply_deref_increment (F &&f, T< Iterators... > &iterators, std::index_sequence< I... >)
 
template<typename F , typename ... Iterators, template< typename... > class T, std::size_t ... I>
decltype(auto) apply_increment (F &&f, T< Iterators... > &iterators, std::index_sequence< I... >)
 
template<typename F , typename T , std::size_t ... I>
decltype(auto) apply_iterators_indexed_impl (F &&f, T &&t, std::size_t i, std::index_sequence< I... >)
 
template<typename T , std::size_t ... I>
auto iterators_next_impl (T &&t, int n, std::index_sequence< I... >)
 

Typedef Documentation

◆ requires_index_last

template<int Index, typename ... T>
using grppi::internal::requires_index_last = typedef std::enable_if_t<(Index == (sizeof...(T) - 1)), int>

◆ requires_index_not_last

template<int Index, typename ... T>
using grppi::internal::requires_index_not_last = typedef std::enable_if_t<(Index < sizeof...(T) - 1), int>

Function Documentation

◆ apply_deref_increment()

template<typename F , typename ... Iterators, template< typename... > class T, std::size_t ... I>
decltype(auto) grppi::internal::apply_deref_increment ( F &&  f,
T< Iterators... > &  iterators,
std::index_sequence< I... >   
)

◆ apply_increment()

template<typename F , typename ... Iterators, template< typename... > class T, std::size_t ... I>
decltype(auto) grppi::internal::apply_increment ( F &&  f,
T< Iterators... > &  iterators,
std::index_sequence< I... >   
)

◆ apply_iterators_indexed_impl()

template<typename F , typename T , std::size_t ... I>
decltype(auto) grppi::internal::apply_iterators_indexed_impl ( F &&  f,
T &&  t,
std::size_t  i,
std::index_sequence< I... >   
)

◆ callable_arity()

template<typename T >
constexpr size_t grppi::internal::callable_arity ( )
constexpr

◆ has_arguments()

template<typename F >
constexpr bool grppi::internal::has_arguments ( )
constexpr

◆ has_void_return() [1/2]

template<typename G >
constexpr bool grppi::internal::has_void_return ( )
constexpr

◆ has_void_return() [2/2]

template<typename F , typename I >
constexpr bool grppi::internal::has_void_return ( )
constexpr

◆ iterators_next_impl()

template<typename T , std::size_t ... I>
auto grppi::internal::iterators_next_impl ( T &&  t,
int  n,
std::index_sequence< I... >   
)