skip.hpp File Reference
#include <atria/xform/state_traits.hpp>
#include <atria/variant/match_eggs.hpp>
#include <atria/meta/common_type.hpp>
#include <atria/estd/utility.hpp>
#include <functional>

Go to the source code of this file.

Classes

struct  skip_state< SkippedT, CalledT >
 Type-safe union type that can hold values of both SkippedT and CalledT types. More...
 
struct  is_skip_state< T >
 
struct  is_skip_state< skip_state< SkippedT, CalledT > >
 
struct  state_traits< skip_state< SkippedT, CalledT > >
 
struct  state_traits< skip_state< SkippedT, CalledT > >::can_not_do_that
 
struct  skip_result< ReducingFnT, StateT, InputTs >
 Metafunction that returns a type that can hold both values of type skipped_t = StateT and wrapped_t = declval<ReducingFnT>(declval<StateT>(), declval<InputTs>()...) More...
 

Namespaces

 atria
 C++ amazing templates and reusable implementations awesomeness.
 
 atria::xform
 Efficient and flexible C++ implementation of transducers.
 

Typedefs

template<typename ReducingFnT , typename StateT , typename... InputTs>
using skip_result_t = typename skip_result< ReducingFnT, StateT, InputTs... >::type
 

Functions

template<typename ReducingFnT , typename StateT , typename... InputTs>
auto skip (ReducingFnT &&, StateT &&state, InputTs &&...) -> skip_result_t< ReducingFnT, StateT, InputTs... >
 Skip calling the next reducing function in a transducer. More...
 
template<typename StateT >
auto skip (StateT &&state) -> StateT &&
 
template<typename ReducingFnT , typename StateT , typename... InputTs>
auto call (ReducingFnT &&step, StateT &&state, InputTs &&...ins) -> estd::enable_if_t< is_skip_state< estd::decay_t< StateT > >
 Call the next reducing function in a transducer that could otherwise skip calling the next reducing function. More...
 

Variables

 skip_result_t< ReducingFnT, StateT, InputTs... >
 
Fork me on GitHub