
I shall have to make use of Boost.Typeof optional in the next version of
"Andy Little" <andy@servocomm.freeserve.co.uk> wrote pqs
too in order to allow user to decide whether they want to use it and also to monitor the effect on compilation times.
The compilation overhead imposed by Boost.Typeof comes in two flavours: 1) Time necessary to deduce type, when requested. A few things were done in the past to reduce it, including using our own compile time vector instead of mpl::vector (gave about 2.5 times increase in performance; this is very typeof-specific, though, and is related to element access by index, where index is known at preprocessing time). However, we'll never be able to completely eliminate this overhead, and it is especialy noticable for complicated types -- too many templates get instantiated; 2) Time necessary to just include the typeof stuff. This is currently spent mainly on generating definitions of our vector. This is especially painful when LIMIT_SIZE is set to a larger number, to allow for deducing of more complicated types. I think, once I commit the code recently provided by Tobias (and this should happen very soon, probably this evening), this problem will be mostly remedied. So, when you estimate the effect of the Boost.Typeof on the compilation time, please distinguish between per-file, one time overhead, and per-type overhead. This is important in order to decide how to address the issue. Regards, Arkadiy