
At Mon, 18 Oct 2010 07:40:21 +0200, Thomas Heller wrote:
Preprocessor code generation takes time, and the time it takes is significant. The most annoying fact is that even if we took care about not instantiating templates if the user doesn't want them, the user pays for these preprocessor iterations. Think about it, in the case of perfect forward emulation the number of overload created is O(N!). Even if N is large, the search for the right overload shouldn't be a problem (searching is in O(log(N))).
The answer for that is easy: preprocess the code yourself, the way MPL does, for the minimum or default number of arguments you're going to support.
As a side note, more and more Boost libraries are making compilation very slow, and it would be nice to integrate standardized PCH headers as part of the Boost distribution, which would be automatically generated at installation time.
Agreed.
Instead of providing PCH headers, we could just preprocess our headers with some kind of boost.wave driver, like MPL already does.
<cough>Right.</cough> -- Dave Abrahams BoostPro Computing http://www.boostpro.com