Boost logo

Boost Users :

From: Vyacheslav Kononenko (groups_at_[hidden])
Date: 2005-06-14 15:51:53


--- Stephen Gross <mrstephengross_at_[hidden]> wrote:

> (1) Where can I find reference information for
> mpl::for_each (I've looked
> around on the boost website and can't seem to find
> it).
>
> (2) Here's what I'm trying to do: I've got an
> mpl::vector. Given some type
> T, I want to loop across the vector and see if T is
> convertible to any of
> the types in the vector. I tried something like
> 'for_each<typelist,
> is_convertible<T, _1> >()' but my syntax is
> definitely wrong. Any ideas?
>
> Thanks in advance,
> --Steve
>
> Stephen Gross
> Case Western School of Medicine
> Cleveland, OH
>
You can use fold in this case. So it could be
something like this:

template< typename Sequence, typename T >
struct find_convertible : fold< Sequence, void_, if_<
is_void_< _1 >, is_convertible< T, _2 >, _1 > {};

is_convertible shall return void_ in case it cannot
convert for this to work (you can use different type,
but need to change initial value and if statement
accordingly).

I made a suggestion to make such algorithm available
in the lib. But it is possible it can be simply
implemented through already existing algorithms.

Regards,
Vyacheslav


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net