Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2007-02-02 20:24:37


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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk