Allen Bierbaum wrote:
I have been very impressed with the Variant library and started using it with Boost 1.29.
Good to hear. I'd be interested in your experience using the library in a real-world (?) application.
I was able to get variant working with 1.30 by pulling some of the code out of the sandbox.
I have started using it in my application and have run into one major limitation: variant size (in number of allowed types)
I need to use a variant of about 15-20 allowed types. By default variant only works with 10 types. I know that by defining:
BOOST_MPL_LIMIT_LIST_SIZE=20 and BOOST_MPL_NO_PREPROCESSED_HEADERS
I can get the limit up to 20 or 30 or whatever I want. Unfortunately this also ups the limits on *all* lists that may be in the code and makes compile times take much longer since I can't use the preprocessed headers.
Anyway, looking back through the list I found a reference here:
http://lists.boost.org/MailArchives/boost/msg38637.php
that says the recommended way to do this type of thing when users want longer list types is to use the numbered list types. I know this doesn't directly relate to variant, but I was thinking it would be very nice to have something similar for variant.
So for example I could say:
boost::variant27<...>
to get a variant that allows 27 types.
I would also be happy with something like:
boost::variant<27, type1, type2,..., type27>
but I could see where some people would not like this form since it requires the size to be explicitly set.
Maybe something like this would work better.
boost::variantS<27, type1, ..., type27>
This provides an explicit type that is used when you want the first parameter to be the size, but still allows the normal boost::variant type to automatically detect the size.
What do you think, are either of these two options feasible (or is there already support for it that I missed)?
-Allen
I now need to start to using Boost 1.30.0 though and I don't think the variant library distributed for the review will work with the 1.30.0 release.
Does anyone have any suggestions how I can use the variant library with Boost 1.30.0? Anyone have an updated distribution of the Variant library?
I plan to ready the code for release with 1.31. Until then, you can try using the code in the sandbox, which I have recently updated to work with 1.30.
Note, however, that the code in the sandbox will change -- sometimes significantly -- and integrates variant with other libraries I am developing, such as Boost.Visitor and Boost.Move. If this is a problem for you, you may want to update the variant submission code yourself. Most of the required changes are to accomodate class and header name-changes in MPL between 1.29 and 1.30 -- nothing terribly significant.
Thanks, Eric
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- -- Allen Bierbaum [EMAIL PROTECTED] -- -- VR Juggler Team www.vrjuggler.org -- -- Virtual Reality Applications Center www.vrac.iastate.edu --
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost