|
Boost : |
Subject: Re: [boost] [testing] Add a tester with hidden visibility
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2015-05-07 13:55:51
On 7 May 2015 at 18:38, John Maddock wrote:
> > Since C++ 11 we have extern templates, and that finally makes
> > dllexporting template instantiations useful. I can see very
> > significant potential benefits especially to compile and link times
> > there,
>
> Boost.Regex has done this since day 1 for compilers that support it
> (msvc and gcc). Compile time speedups are larger on msvc, but in both
> cases well worth the effort. In fact it's one reason the library hasn't
> gone header-only: it could probably be done, but compile times are just
> *so* much faster when the template instances are in an external lib...
Good stuff.
For reference, AFIO a very simple library sees this with precompiled
headers enabled:
GCC: 12m => 10m
MSVC: 7m => 2m
clang: No change
AFIO also has the ability to both use precompiled headers and not be
header only:
GCC: 4m
MSVC: 1m
So especially big wins for GCC.
I suspect that C++ Modules cannot deliver any improvements over the
non-header only with precompiled headers configuration. Good build
config always beats compiler magic.
Niall
-- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk