gcc/libstdc++-v3
François Dumont a188284c61 re PR libstdc++/51608 ([C++11] Unordered containers end(size_type) isn't constant time)
2011-12-29  François Dumont <fdumont@gcc.gnu.org>

	PR libstdc++/51608
	* include/bits/hashtable_policy.h (_Equal_helper<>): New, change the
	way the _Equal functor is used depending on whether hash code is
	cached or not.
	(_Ebo_helper<>): New helper type to introduce EBO when possible.
	(_Hash_code_base): Use _Ebo_helper to limit memory footprint. Move
	_Equal functor management...
	(_Hashtable_base): ...here, new, use _Equal_helper.
	(_Local_iterator_base<>, _Locale_iterator<>, _Locale_const_iterator<>):
	New, use _Hash_code_base, implementation of...
	* include/bits/hashtable.h (_Hashtable<>::local_iterator,
	_Hashtable<>::const_local_iterator): ...those. Add static assertions
	checking that some functors are empty depending on whether hash code
	is cache or not.
	(_Hashtable<>::_M_bucket_index): New overloads using current bucket
	count, use through out the _Hastable<> implementation.
	* include/bits/unordered_set.h (__unordered_set<>,
	__unordered_multiset<>): Cache hash code iff hash functor is not
	empty and not final.
	* include/bits/unordered_map.h (__unordered_map<>,
	__unordered_multimap<>): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::_S_to_local, unordered_multimap<>::_S_to_local):
	Adapt to match new local iterator implementation.
	* include/debug/unordered_set (unordered_set<>::_S_to_local,
	unordered_multiset<>::_S_to_local): Likewise.
	* include/profile/unordered_map (unordered_map<>::_M_profile_destruct,
	unordered_multimap<>::_M_profile_destruct): Enhance thanks to usage of
	local iterators.
	* include/profile/unordered_set (unordered_set<>::_M_profile_destruct,
	unordered_multiset<>::_M_profile_destruct): Likewise.
	* testsuite_files/23_containers/unordered_set/instantiation_neg.cc:
	Fix error line.
	* testsuite_files/23_containers/unordered_set/final_hash.cc: New.
	* testsuite_files/23_containers/unordered_multiset/final_hash.cc: New.
	* testsuite_files/23_containers/unordered_map/final_hash.cc: New.
	* testsuite_files/23_containers/unordered_multimap/final_hash.cc: New.

From-SVN: r182727
2011-12-29 17:58:51 +00:00
..
config * config/os/mingw32-w64/os_defines.h (__USE_MINGW_ANSI_STDIO): Define. 2011-12-23 18:23:38 +01:00
doc re PR libstdc++/51701 (Remove reference to Henry Suter's RWLock from documentation) 2011-12-29 15:41:37 +00:00
include re PR libstdc++/51608 ([C++11] Unordered containers end(size_type) isn't constant time) 2011-12-29 17:58:51 +00:00
libsupc++ eh_tm.cc (free_any_cxa_exception): Use __GCC_ATOMIC_INT_LOCK_FREE, not _GLIBCXX_ATOMIC_BUILTINS_4. 2011-12-20 00:16:25 +00:00
po Move gthr to toplevel libgcc 2011-11-02 15:28:43 +00:00
python re PR libstdc++/48362 (pretty printer fails for zero-size std::tuple<>) 2011-12-22 12:33:15 +00:00
scripts user.cfg.in: Add macros, directories. 2011-12-10 15:33:06 +00:00
src re PR libstdc++/51558 (Declaration of unspecialized std::hash<_Tp>::operator()(_Tp) turns compile-time errors into link-time errors) 2011-12-15 22:15:21 +00:00
testsuite re PR libstdc++/51608 ([C++11] Unordered containers end(size_type) isn't constant time) 2011-12-29 17:58:51 +00:00
acinclude.m4 acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros. 2011-12-01 02:20:32 +00:00
aclocal.m4
ChangeLog re PR libstdc++/51608 ([C++11] Unordered containers end(size_type) isn't constant time) 2011-12-29 17:58:51 +00:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
config.h.in acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros. 2011-12-01 02:20:32 +00:00
configure acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros. 2011-12-01 02:20:32 +00:00
configure.ac acinclude.m4 ([GLIBCXX_ENABLE_VISIBILITY]): Rename to [GLIBCXX_ENABLE_LIBSTDCXX_VISIBILITY]... 2011-11-08 14:07:27 +00:00
configure.host configure.host: Use config/os/mingw32-w64 instead of config/os/mingw32 if vendor key is "w64". 2011-10-14 08:57:55 +02:00
crossconfig.m4
fragment.am
linkage.m4
Makefile.am
Makefile.in Move gthr to toplevel libgcc 2011-11-02 15:28:43 +00:00
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.