Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2005-01-27 18:32:27


Alexander Nasonov writes:
> Aleksey Gurtovoy wrote:
> > Oh, I see it now: specializing 'iter_apply1' allows for intuitively
> > obvious
> >
> > find_if< overloads, is_same<bool(int),_1> >
> >
> > while my suggestion would require something like
> >
> > find_if<
> > overloads
> > , overload_match< _1, is_same<bool(int),_1> >
> > >
>
> Exactly!
>
>
> > That's indeed quite appealing. However, specializing 'iter_apply1' this way
> > assumes that it's always invoked on a predicate metafunction, which,
> > at least theoretically, does not hold.
>
> Either predicate or metafunction that returns IntegralConstant constructed from
> sizeof (possibly shifted).
>
> > On the other hand, with 'typeof',
> > dereferencing 'overload_set_iter' would simply return a corresponding
> > function type and things would "just work"
>
> That's true.
>
> > ... without any special effort on
> > our side, and in that light 'iter_apply1' specialization for the compilers
> > that need it is simply an implementation detail which I'm willing to close
> > my eyes to ;). It's going to be interesting to see how many MPL algorithms
> > can be made to work with overload sequences using this approach.
>
> I've already tried find find_if contains and equal.
>
> Here is my plan. For now, we can reimplement mpl algorithms based on
> predicate using iter_applyN. Later, when typeof becomes common among
> popular compilers we can switch seamlessly to typeof.

Sounds good. Looking forward to hearing how it goes!

--
Aleksey Gurtovoy
MetaCommunications Engineering

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk