Boost logo

Boost :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2006-03-01 22:35:01


"Peder Holt" <peder.holt_at_[hidden]> wrote

> 2. In emulation mode, there is no longer any limit to the complexity
> of the types passed to BOOST_TYPEOF_NESTED_TYPEDEF.
> BOOST_TYPEOF_LIMIT_SIZE is no longer a limiting factor.

Interesting.

I think I can see how you avoid the limit related to the number of template
parameters (which is a major improvement by itself).

However, I don't think you can get over the preprocessor limit, can you?

Also, BOOST_TYPEOF_LIMIT_SIZE is there to avoid unnecessary evaluations of
the expression, and again, I don't see how you are planning to not depend on
it... Assumming, of course, that I figured out things correctly, and you
are planning to do something like this:

struct name
{
    enum {
        value1 = sizeof(encode(expr).item1),
        value2 = sizeof(encode(expr).item2),
        ...
        valueN = sizeof(encode(expr).itemN),
    };
    typedef<decode<some_iterator<name> >::type type;
};

encode still needs to be called BOOST_TYPEOF_LIMIT_SIZE times, doesn't it?
Am I missing something?

Regards,
Arkadiy


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