Boost logo

Boost Users :

From: Adrián Etchevarne (adrian.etchevarne_at_[hidden])
Date: 2006-05-30 11:18:21


David Abrahams wrote:

>
> That's a lot easier to solve, in some sense, than the "Problem:"
>
> above. The cons list is a valid tuple. So to inserta new type at
>
> the front, just write
>
>
>
> const<T, the-shorter-cons-list>
>
>
>
Thanks to all for your responses.

tuple inherit from cons, so tuple is a cons.

cons<> has an implicit conversion to tuple, but the types are not the same
(or I am missing something):

template< typename Cons, typename T>
struct p_front
{
        typedef cons<T, Cons> type;
};

typedef p_front< tuple<int>::inherited, float>::type pushed;

(is_same< pushed, tuple<float, int> >::value == false) // Not the same

If I declare

pushed value;

value has cons operations, not tuple operations. The implicit conversion
mitigates this. How I can sinthesize a tuple type? Joaquín's brute force
approach is the ultimate solution?

> You might also want to look at
>
>
http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/index.html
>
> which was recently accepted into Boost.
>
I will read it, thanks. It looks great!

Thanks,
        Adrián


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