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 aany_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
The documentation for this struct was generated from the following file:
- src/atria/xform/skip.hpp