|
Boost : |
From: Aleksey Gurtovoy (alexy_at_[hidden])
Date: 2002-01-17 10:45:06
David Abrahams wrote:
> From: "Aleksey Gurtovoy" <alexy_at_[hidden]>
>
> > I am not sure about the number of template instantiations - it might be
> > pretty much the same, - but, for one thing, they (instantiations) won't
be
> > nested, so it's very likely that such implementation will also take a
less
> > time to compile (compilers with EDG front-end is a different story, and
> > there are ways to deal with them :). But the main advantage would be, of
> > course, a size/speed of the generated code.
>
> Agreed, that's crucially important! Why will the code be faster?
I think it's an excessive recursion that forces many of the compilers to do
such a poor job on inlining functions like 'tuples::get' or tuple
constructor. I believe one of Jaakko's technical reports talks about
performance issues, but I can't cite it or say which one, because the
publication links on the library's page (and, FWIW, everywhere else) are
broken. A preprocessor-based implementation wouldn't have this particular
drawback (all the recursion will happen during the preprocessing phase, and
never for EDG :).
Aleksey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk