[Patch] libstdc++/28080, more

Benjamin Kosnik bkoz@redhat.com
Tue Feb 20 20:12:00 GMT 2007


> the below continues the work: besides the straightforward tr1/random and 
> tr1/memory bits (usual idea of avoiding the whole, big <algorithm>, when 
> possible), I'm also splitting out from <tr1/functional> the hash 
> functions to functional_hash.h: this allows to include only the latter 
> in tr1/unordered_map and unordered_set and the compilation of those 
> headers alone becomes about 3 times faster, because we avoid all the 
> preprocessor metaprogramming (the  preprocessed headers are also less 
> than half the size).

I'd noticed this tr1/functional issues when doing the C++0x headers. ... 
this leads to a recursive <string> include.

> Hoping for variadic templates to go in mainline relatively soon (after 
> Oxford?), the latter changes, very safe anyway, seem particularly 
> important for the 4_2-branch, and I mean to commit there too.

Man, I'm getting quite peeved about the delay in variadic templates 
going in. This is really important, interface-wise for C++0x. WTF!!!! 
Tis been two months, that patch is rotting on gcc-patches.

> 2007-02-20  Paolo Carlini  <pcarlini@suse.de>
> 
> 	PR libstdc++/28080 (partial)
> 	* include/tr1/functional: Split out hash bits to...
> 	* include/tr1/functional_hash.h: ...here.
> 	* include/Makefile.am: Add.
> 	* include/tr1/unordered_set: Include the latter instead.
> 	* include/tr1/unordered_map: Likewise.
> 	* include/tr1/random: Do not include the whole <algorithm>,
> 	stl_algobase.h is enough.
> 	* include/tr1/memory: Likewise.
> 	* include/Makefile.in: Regenerate.
> 
> 	* include/tr1/utility (get(std::pair<>&), get(const std::pair<>&)):

Please, if you could, check this in ASAP.

best,
benjamin



More information about the Libstdc++ mailing list