gcc/libstdc++-v3/include/bits
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
..
algorithmfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
alloc_traits.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
allocated_ptr.h Update copyright years. 2019-01-01 13:31:55 +01:00
allocator.h Update copyright years. 2019-01-01 13:31:55 +01:00
atomic_base.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
atomic_futex.h Update copyright years. 2019-01-01 13:31:55 +01:00
basic_ios.h Update copyright years. 2019-01-01 13:31:55 +01:00
basic_ios.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
basic_string.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
basic_string.tcc Export explicit instantiations for C++17 members of std::string 2019-01-04 23:23:22 +00:00
boost_concept_check.h Update copyright years. 2019-01-01 13:31:55 +01:00
c++0x_warning.h Update copyright years. 2019-01-01 13:31:55 +01:00
c++config P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
char_traits.h PR libstdc++/89446 fix null pointer dereference in char_traits 2019-02-23 03:01:59 +00:00
codecvt.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
concept_check.h Update copyright years. 2019-01-01 13:31:55 +01:00
cpp_type_traits.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
deque.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
enable_special_members.h Update copyright years. 2019-01-01 13:31:55 +01:00
erase_if.h Fix more missing or incorrect feature test macros 2019-01-15 12:58:19 +00:00
forward_list.h Fix after P0600. 2019-01-21 11:47:30 +00:00
forward_list.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
fs_dir.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_fwd.h Define new filesystem::__file_clock type 2019-01-05 20:03:22 +00:00
fs_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
fs_path.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
fstream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
functexcept.h Update copyright years. 2019-01-01 13:31:55 +01:00
functional_hash.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
gslice_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
gslice.h Update copyright years. 2019-01-01 13:31:55 +01:00
hashtable_policy.h Update copyright years. 2019-01-01 13:31:55 +01:00
hashtable.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
indirect_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
invoke.h Update copyright years. 2019-01-01 13:31:55 +01:00
ios_base.h Update copyright years. 2019-01-01 13:31:55 +01:00
istream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
list.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_classes.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_classes.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_conv.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
locale_facets_nonio.h Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets_nonio.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
locale_facets.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
locale_facets.tcc PR libstdc++/68737 Do not use vsnprintf on HPUX 2019-01-28 23:58:57 +00:00
localefwd.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
mask_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
memoryfwd.h Update copyright years. 2019-01-01 13:31:55 +01:00
move.h Update copyright years. 2019-01-01 13:31:55 +01:00
node_handle.h Update copyright years. 2019-01-01 13:31:55 +01:00
ostream_insert.h Update copyright years. 2019-01-01 13:31:55 +01:00
ostream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
parse_numbers.h Update copyright years. 2019-01-01 13:31:55 +01:00
postypes.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
predefined_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
ptr_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
quoted_string.h Update copyright years. 2019-01-01 13:31:55 +01:00
random.h Update copyright years. 2019-01-01 13:31:55 +01:00
random.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
range_access.h Update copyright years. 2019-01-01 13:31:55 +01:00
refwrap.h P0357R3 reference_wrapper for incomplete types 2019-01-11 23:41:11 +00:00
regex_automaton.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_automaton.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_compiler.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_compiler.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_constants.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_error.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_executor.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_executor.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex_scanner.h Update copyright years. 2019-01-01 13:31:55 +01:00
regex_scanner.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
regex.h Fix after P0600. 2019-01-21 11:47:30 +00:00
regex.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr_atomic.h Update copyright years. 2019-01-01 13:31:55 +01:00
shared_ptr_base.h PR libstdc++/88782 avoid ODR problems in std::make_shared 2019-01-18 21:28:48 +00:00
shared_ptr.h PR libstdc++/88782 avoid ODR problems in std::make_shared 2019-01-18 21:28:48 +00:00
slice_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
specfun.h Update copyright years. 2019-01-01 13:31:55 +01:00
sstream.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
std_abs.h Document LWG 2735 status and add test 2019-02-14 09:07:09 +00:00
std_function.h Update copyright years. 2019-01-01 13:31:55 +01:00
std_mutex.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_algo.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_algobase.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_bvector.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_construct.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_deque.h Rename __is_trivially_relocatable to __is_bitwise_relocatable. 2019-02-05 09:33:36 +00:00
stl_function.h re PR tree-optimization/88775 (Optimize std::string assignment) 2019-01-10 11:56:56 +01:00
stl_heap.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator_base_funcs.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator_base_types.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_list.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_map.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
stl_multimap.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
stl_multiset.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
stl_numeric.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_pair.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_queue.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
stl_raw_storage_iter.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_relops.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_set.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
stl_stack.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
stl_tempbuf.h Update copyright years. 2019-01-01 13:31:55 +01:00
stl_tree.h Fix after P0600. 2019-01-21 11:47:30 +00:00
stl_uninitialized.h PR libstdc++/89090 avoid C++17 features in C++11/C++14 code 2019-02-05 14:44:56 +00:00
stl_vector.h PR libstdc++/89130 restore support for non-MoveConstructible types 2019-02-05 14:45:00 +00:00
stream_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
streambuf_iterator.h Update copyright years. 2019-01-01 13:31:55 +01:00
streambuf.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
string_view.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
stringfwd.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
uniform_int_dist.h Update copyright years. 2019-01-01 13:31:55 +01:00
unique_lock.h Update copyright years. 2019-01-01 13:31:55 +01:00
unique_ptr.h PR libstdc++/88738 treat shared_ptr and unique_ptr more like plain old pointers 2019-01-16 08:01:22 +00:00
unordered_map.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
unordered_set.h PR libstdc++/89477 constrain deduction guides for maps and sets 2019-02-26 23:12:44 +00:00
uses_allocator.h DR 2586 fix value category in uses-allocator checks 2019-02-14 15:08:33 +00:00
valarray_after.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_array.h Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_array.tcc Update copyright years. 2019-01-01 13:31:55 +01:00
valarray_before.h Update copyright years. 2019-01-01 13:31:55 +01:00
vector.tcc PR libstdc++/89130 restore support for non-MoveConstructible types 2019-02-05 14:45:00 +00:00