
On 03/17/08 17:55, Eric Niebler wrote:
Larry Evans wrote:
Me too!
I couldn't tell from your email -- what are you me too-ing?
flattening a sequence of binary operators into one list with a tag indicating the operator to be applied between elements in the list.
In general, there should be an n-ary version of all the binary ops.
Do you mean, you'd like to create an expression expr<tag::plus, args4<A,B,C,D> > ? There's nothing stopping you from doing that today.
make_expr<tag::plus>(1,2,3,4)
The only problem is that default_context won't know what to do with it, but that's not big a problem ... just write your own context.
Actually, I was thinking an n-ary expression with a tag like: reduce<BinOp> For example, make_expr<reduce<tag::plus> >(1,2,3,4). The reason for the name "reduce" is that what apl uses. Or maybe fold<BinOp>, since that's what other boost libraries use.
This should also be extended to the or_ also. I remember having a problem with folding or_ because it was
[snip]
IIRC, your problem was that or_ requires at least 2 parameters. I had agreed to change that, but haven't yet.
Yep, now I remember.