skip_result< ReducingFnT, StateT, InputTs > Struct Template Reference

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...

#include <atria/xform/skip.hpp>

Detailed Description

template<typename ReducingFnT, typename StateT, typename... InputTs>
struct atria::xform::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>()...)

The result is:

  • If a std::common_type<skipped_t, wrapped_t> exists between the two types, it returns this type. For example, if one of these is a any_state because is used in a type erased transducer, any_state will be the result.
  • Otherwise, it returns skip_state<skipped_t, wrapped_t>, which is essentially a type-safe union of these two types.
See also
skip

Definition at line 193 of file skip.hpp.


The documentation for this struct was generated from the following file:
Fork me on GitHub