template <
typename Result,
typename Function,
typename... Args> \
Result apply(Function && function, TYPE & datum, Args &&... args) \
{ \
std::vector<std::pair<std::function<bool(TYPE &)>, std::function<
Result(TYPE &, Args &&...)>>> \
dispatcher{{__VA_ARGS__}}; \
for (auto & p : dispatcher) { \
if (p.first(datum)) { \
return p.second(datum, std::forward<Args>(args)...); \
} \
} \
} \
static_assert(true, "")
#define UNSUPPORTED_SETTING_DETECTED(ACTION_OR_CONDITION, ELEMENT)
Definition: error.hpp:63
Result
Definition: cpp_scenario_node.hpp:28
auto makeTypename(Ts &&... xs)
Definition: demangle.hpp:30