
"Peder Holt" <peder.holt@gmail.com> 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