|
Boost Users : |
From: Eric Niebler (eric_at_[hidden])
Date: 2007-03-29 14:54:19
Markus Werle wrote:
>
> So what we really need together with the tutorials and the documentation
> is a wiki about the design and evolution of boost.
Design rationales are good. A wiki might work, but a better place might
be in a "Rationale" section in each Boost library's documentation.
> Then Eric Niebler could explain in depth why he needs
> "static, aggregate initialization" in proto
> (see <http://thread.gmane.org/gmane.comp.parsers.spirit.devel/2886/focus=2890>)
> and why mpl does not fit for proto.
Static initialization in proto is important so that when DSEL authors
declare their global primitives like _1, there are no global
initialization order problems.
The only problem I had using MPL with proto was compile-time performance
problems when using MPL lambdas. In order to keep compile times down,
I've replaced as much template meta-programming in proto as possible
with preprocessor meta-programming. And proto is a bit of a special case
since TMP-heavy libraries are built on top of proto, so the TMP overhead
of proto itself should be as small as possible. MPL is a very nice
abstraction, but it's not free. Ditto for Fusion.
And yes, I measure compile time performance and don't optimize
prematurely. :-)
-- Eric Niebler Boost Consulting www.boost-consulting.com
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