Boost logo

Boost :

From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-01-14 20:34:01


Joel de Guzman wrote:
> Steven Watanabe wrote:
>> My concern is
>> 1) fall-through can't easily be added to the interface.
> I have an idea I'd like to post in another update to the
> case concept.

> The point is that it is just another case. Whatever the
> sequenced_case is, it's just a model of the case concept.
> Sure it still has to be documented, but not as a separate
> concept, but as a model of it.
> Also, to me, it's most trivial to just make it an ET
> tree:
> template< class CaseL, class CaseR >
> struct binary_case
> {
> CaseL l;
> CaseR r;
> binary_case(CaseL const& l, CaseR const& r)
> : l(l), r(r) {}
> typedef mpl::joint_view<
> typename CaseL::labels, typename CaseR::labels
> > labels;
> template< typename Result, class I >
> Result apply(I);
> };
> Key points:
> * apply is part of the concept. In this case, it dispatches
> to l or r depending on I
> * hmmm.... maybe labels should be an mpl set.

No, thank you. mpl set is buggy and slow.

Also, one thing that needs to be nailed down is: What Is I?
Tobias was using it as the index into the list of labels:
   mpl::int_<0>, mpl::int_<1>, mpl::int_<2>, ...
In my original interface and as you seem to be using it I is one of:
   mpl::at_c<labels, 0>::type, mpl::at_c<labels, 1>::type,
mpl::at_c<labels, 2>::type

In Christ,
Steven Watanabe

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