
Andrey Semashev wrote:
Hello Steven,
Friday, February 2, 2007, 10:16:54 PM, you wrote:
AMDG
Is there any interest in a function template that generates a switch statement?
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&) {} }
Interesting. It would be much better if it is integrated with Boost.Lambda. Something like this:
Phoenix2 provides this functionality. Regards, Tobias