gcc/libstdc++-v3
Jonathan Wakely 08abbddaaa PR libstdc++/89477 constrain deduction guides for maps and sets
The Compare, Hash, and Pred template parameters should be constrained in
the C++17 deduction guides for associative and unordered containers.

The deduction guides for stack, queue and priority_queue are already
constrained, but this patch makes them use the _RequireNotAllocator
helper instead of reproducing the logic each time.

	PR libstdc++/89477
	* include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
	container deduction guides.
	* include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
	* include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
	parameters in deduction guides.
	* include/bits/stl_multimap.h (multimap): Likewise.
	* include/bits/stl_multiset.h (multiset): Likewise.
	* include/bits/stl_queue.h (queue, priority_queue): Likewise.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/stl_stack.h (stack): Likewise.
	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
	use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
	constrain parameters in deduction guides.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/map/cons/deduction.cc: Test additional
	deduction cases.
	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.

From-SVN: r269234
2019-02-26 23:12:44 +00:00
..
config baseline_symbols.txt: Adjust. 2019-02-22 21:25:59 +00:00
doc Update libstdc++ documentation for C++2a implementation status 2019-02-14 17:46:26 +00:00
include PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
libsupc++ P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
po Update copyright years. 2019-01-01 13:31:55 +01:00
python P0482R5 char8_t: Updates to gdb pretty printing support 2019-02-22 01:16:11 +00:00
scripts Update copyright years. 2019-01-01 13:31:55 +01:00
src re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target) 2019-02-22 20:10:47 +01:00
testsuite PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
acinclude.m4 Fix build for systems without POSIX truncate 2019-01-07 12:38:51 +00:00
aclocal.m4 Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
ChangeLog PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +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
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018 Update copyright years. 2019-01-01 13:31:55 +01:00
config.h.in Add std::timespec and std::timespec_get for C++17 2019-02-14 14:10:25 +00:00
configure Add std::timespec and std::timespec_get for C++17 2019-02-14 14:10:25 +00:00
configure.ac Add std::timespec and std::timespec_get for C++17 2019-02-14 14:10:25 +00:00
configure.host configure.host (abi_baseline_pair): Adjust for SPARC64/Linux. 2019-02-22 07:25:52 +00:00
crossconfig.m4 Add std::timespec and std::timespec_get for C++17 2019-02-14 14:10:25 +00:00
fragment.am PR libstdc++/86450 use -Wabi=2 and simplify -Werror use 2018-07-17 14:18:47 +01:00
linkage.m4
Makefile.am Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.in Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +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.