We're updating the issue view to help you get more done. 

support (conditional) explicit template expansion to speed compiles

Description

Explicit template instantion trick (faster compilers):
extern template class Sequence<int>;

Then in sequence.cpp
template class Sequence<int>;
// see book/picture

// trick use nm| grep to see what classes instantiated a lot so worth doing this
find . -name *.o -exec nm {} \; > a.txt

candidates to preexpand
_ZNK7Stroika10Foundation5Debug32AssertExternallySynchronizedLock11lock_sharedEv
_ZZNK7Stroika10Foundation10Containers7MappingINS0_10Characters6StringENS0_12DataExchange12VariantValueEE5_IRep30_Keys_Reference_ImplementationEvEN11MyIterable_D2Ev
ZZN7Stroika10Foundation10Containers14DataStructures10LinkedListINS0_10Characters6StringEE15ForwardIterator4MoreEPS5_bE19PRETTY_FUNCTION_
ZZN7Stroika10Foundation10Containers7Private22PatchingDataStructures10LinkedListINS0_10Characters6StringEE8RemoveAtERKNS7_15ForwardIteratorEE19PRETTY_FUNCTION_
wc -l a.txt
453433 a.txt
#define qStroika_Foundation_Configuration_PreExpandPopularTemplates
// look at docs to see what right name is – extern and template expand

Environment

None

Status

Assignee

Lewis Pringle

Reporter

Lewis Pringle

Labels

None

Components

Priority

Lowest