
Hi Steven, Steven Watanabe wrote:
AMDG
Is there any interest in a function template that generates a switch statement?
Yes. I'm interested.
struct f { typedef void result_type; void operator()(mpl::int_<0>) const { std::cout << "2" << std::endl; } void operator()(mpl::int_<1>) const { std::cout << "1" << std::endl; } void operator()(mpl::int_<5>) const { std::cout << "0" << std::endl; } };
int main() { typedef mpl::vector<mpl::int_<0>, mpl::int_<1>, mpl::int_<5> > cases; switch<cases>(5, f()); //prints 0 try { switch<cases>(3, f()); } catch(bad_switch&) {} }
Is this an interface proposal or just some code to illustrate the idea? I'd like to have templatized parameters and probably separate function objects for the cases rather than shape-shifting overloads... Regards, Tobias