$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Rob Stewart (stewart_at_[hidden])
Date: 2005-08-09 05:31:43
From: David Abrahams <dave_at_[hidden]>
> "Andy Little" <andy_at_[hidden]> writes:
> > "David Abrahams" <dave_at_[hidden]> wrote 
> >> Rob Stewart <stewart_at_[hidden]> writes:
> >
> >>>>   all_of(a)._(frobnicates, any_of(b))
> >>>>   all_of(a)._,frobnicates, any_of(b)
> >>>>   all_of(a)._ %frobnicates%  any_of(b)
> >>>>   all_of(a)._ |frobnicates|  any_of(b)
> >>>>   all_of(a)._ <frobnicates>  any_of(b)
> >>>    all_of(a)(frobnicates, any_of(b))
> >
> > Yuck and Yuck FWIW. AFAIK only prefix user defined operations work in C++.
> >
> >      if ( frobnicates(all_of(a), any_of(b))) {
> 
> You can't do that unless you ask people to put smarts about all_of and
> any_of inside of frobnicates.  The goal is to use a general predicate
> such as std::less<int>()
I didn't notice this earlier, but I'm not sure if we can achieve
your goal.  The current implementation of an expression like
   any_of(a) <frobnicates> any_of(b)
is to iterate the range in a calling frobnicates with each value
from a with any_of(b).  That expression gets reversed suitably
such that it iterates the values in b calling frobnicates with
the each value in b and the one value from a.
I'll have to take another look at how I've implemented things to
see whether I can achieve the goal you've set, because I can see
the value in meeting it.
-- Rob Stewart stewart_at_[hidden] Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;