19 #ifdef FRAMEWORK_NO_BOOST
20 #error "Not implemented"
25 #include <boost/preprocessor/config/limits.hpp>
26 #include <boost/preprocessor/repetition/repeat.hpp>
27 #include <boost/preprocessor/punctuation/comma_if.hpp>
28 #include <boost/preprocessor/iteration/local.hpp>
33 #ifndef FRAMEWORK_VARIADIC_SWITCH_LIMIT
34 #define FRAMEWORK_VARIADIC_SWITCH_LIMIT 20
36 #if FRAMEWORK_VARIADIC_SWITCH_LIMIT > BOOST_PP_LIMIT_REPEAT
37 #error "Variadic switch limit cannot exceed BOOST_PP_LIMIT_REPEAT"
41 #if FRAMEWORK_VARIADIC_SWITCH_LIMIT <= 0
42 #error "Invalid variadic switch limit"
49 template <
typename CaseList>
50 struct variadic_switch_fallthrough_impl;
88 template <
typename CaseList,
typename Handler,
typename Index,
typename... Args>
92 detail::variadic_switch_fallthrough_impl <CaseList>::run(
93 std::forward <Handler> (handler),
94 std::forward <Index> (index),
95 std::forward <Args> (args)...);
99 #include <framework/common/variadic_switch_fallthrough.inl>