Boost logo

Boost :

From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-01-14 12:01:31


Joel de Guzman wrote:
> Steven Watanabe wrote:
>>> case_<I>(f) Returns a Case object with supplied
>>> <snip more generators>
>> These can return fusion sequences of cases instead of plain cases.
>> This has the additional benefit that switch_ can be specified as taking
>> a fusion sequence of cases, without having to handle a single case
>> specially.
> Right! Makes sense. But wouldn't that use more compile time
> resources? Well, you know better :-)

I don't think so. I'd have to flatten the sequence anyway. This way
you don't pay for
it if you're not using it.


>> From the standpoint of the implementor of switch_, how do I figure out
>> which
>> Case is the default?
> I thought it would be just a check:
> mpl::empty<C::labels>
> But if you want single labels for each Case, then, perhaps:
> is_same<C::label, none>
> or somesuch. Am I missing something

Ok. I didn't like mpl::empty because of the following possibility:

switch_<r>(n)(case_range_c<0, N>(f), default(f));

If N is zero there's a problem.

In Christ,
Steven Watanabe

Boost list run by bdawes at, gregod at, cpdaniel at, john at