Boost logo

Boost :

Subject: Re: [boost] [Fusion] port to c++0x
From: Larry Evans (cppljevans_at_[hidden])
Date: 2009-09-23 07:44:57


On 09/22/09 17:40, Christopher Schmidt wrote:
> I participated in Google's 'Summer of Code' for Boost this year. My
> project was to port Boost.Fusion to c++0x.
> The program is over now and I would like to give you a short report on
> my work and put my code up for comments.
[snip]
>
> You can find the code in the boost sandbox (/sandbox/SOC/2009/fusion).
> If you test the code with a compiler that has decltype support, please
> use the HEAD of the trunk rather than the official 1.40 distribution
> package to compile your code.
>
> Best regards
> Christopher

Thanks for all the work.

However, I was wondering why you couldn't eliminate some of the
extensive BOOST_PP magic in:

https://svn.boost.org/trac/boost/browser/sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp

by using the "tagged multiple inheritance"(TMI) method shown
around here:

https://svn.boost.org/trac/boost/browser/sandbox/variadic_templates/libs/mpl/sandbox/tuple_non_recur.package_range_c.cpp#L53

The only disadvantage of TMI that I can think of is that maybe the
template recursion of package_range_c shown at:

https://svn.boost.org/trac/boost/browser/sandbox/variadic_templates/boost/mpl/package_range_c.hpp#L34

suffers some limitation imposed by the template recursion depth.
However, I don't know if that's a real limitation since I have tested
where, if a single template is used in the recursion, then the
-ftemplate-depth-XX seems irrelevant:

   http://gcc.gnu.org/ml/gcc-help/2009-05/msg00279.html

The only other objection might be to limit the number of instantiations
because the more template instantiations, the slower the compile
time; however, Doug Gregor suggested he wasn't too worried
about that at the bottom of:

   http://groups.google.com/group/comp.std.c++/msg/6449d909fd3d5cdc

-regards,
Larry


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