Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2006-11-04 18:12:51

Peter Dimov wrote:
> Eric Niebler wrote:
>> I have a preprocessing task that exceeds my limited abilities. If any
>> PP gurus want to step in and prevent me from hurting myself further, I
>> would be very grateful.
>> My problem is this: I want to mpl::and_ together a bunch of
>> predicates. mpl::and_ has a limit of 4 arguments. So this is wrong:
>> mpl::and_< pred1, pred2, pred3, pred4, pred5 >
>> but this is ok:
>> mpl::and_< pred1, pred2, pred3, mpl::and_< pred4, pred5 > >
> Would folding a predicate sequence using and_ work?

It would, except (a) it would be more expensive at compile time than a
PP-based solution, and I have reason to care, and (b) it's semantically
not the same, since if I used and_ directly, I get short-circuit
evaluation. (b) also makes an mpl::fold-based solution unnecessarily
expensive by forcing the instantiation of more predicates than necessary
to evaluate the and_.

Eric Niebler
Boost Consulting

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