|
Boost : |
From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2007-02-02 19:51:44
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk