template<typename R, typename ArgumentTypes, typename Funs, typename... Args>
template<typename Fs, typename Wrapped>
template<typename BaseClass, typename NextBase>
struct TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::Wrapper
Generates operator () that calls a function that accepts a next function
Definition at line 98 of file TypeSwitch.h.
template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
using TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::Wrapper::Next = typename Wrapped::type |
template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
anonymous enum : unsigned |
Constant used in a compile-time check.
Definition at line 101 of file TypeSwitch.h.
101:
unsigned {
SetUsed = (Next::SetUsed << 1) | 1u };
template<typename R , typename ArgumentTypes , typename Funs , typename... Args>
template<typename Fs , typename Wrapped >
template<typename BaseClass , typename NextBase >
R TypeSwitch::detail::Executor< R, ArgumentTypes, Funs, Args >::Combine< Fs, Wrapped >::CombineOp< BaseClass, NextBase >::Wrapper::operator() |
( |
BaseClass & |
object, |
|
|
const Functions & |
functions, |
|
|
Args &&... |
args |
|
) |
| const |
|
inline |
Call the first function, which may request dispatch to the further functions
Definition at line 105 of file TypeSwitch.h.
107 {
108
109
110
111 const auto next = [&](){ return
113 std::forward<Args>(args)...); };
114 return std::get<0>(functions)(next)(
115 object, std::forward<Args>(args)...);
116 }
auto ForwardNext(Tuple &&tuple)
Forwarding of the tail of a tuple.
typename Wrapped::type Next
References Tuple::ForwardNext().