gcc/libstdc++-v3/include/bits
redi 785c6c31ab PR libstdc++/86751 default assignment operators for std::pair
The solution for PR 77537 causes ambiguities due to the extra copy
assignment operator taking a __nonesuch_no_braces parameter. By making
the base class non-assignable we don't need the extra deleted overload
in std::pair. The copy assignment operator will be implicitly deleted
(and the move assignment operator not declared) as needed. Without the
additional user-provided operator in std::pair the ambiguity is avoided.

	PR libstdc++/86751
	* include/bits/stl_pair.h (__pair_base): New class with deleted copy
	assignment operator.
	(pair): Derive from __pair_base.
	(pair::operator=): Remove deleted overload.
	* python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
	so that new base class isn't shown in GDB.
	* testsuite/20_util/pair/86751.cc: New test.
	* testsuite/20_util/pair/ref_assign.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263185 138bc75d-0d04-0410-961f-82ee72b054a4
2018-07-31 22:31:20 +00:00
..
algorithmfwd.h Update copyright years. 2018-01-03 10:03:58 +00:00
alloc_traits.h Remove redundant #if conditional 2018-07-03 21:04:37 +00:00
allocated_ptr.h Update copyright years. 2018-01-03 10:03:58 +00:00
allocator.h LWG 3035. std::allocator's constructors should be constexpr 2018-06-18 15:47:07 +00:00
atomic_base.h Implement P0558R2 changes to std::atomic 2018-05-24 15:28:26 +00:00
atomic_futex.h Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 14:01:55 +00:00
basic_ios.h Update copyright years. 2018-01-03 10:03:58 +00:00
basic_ios.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
basic_string.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 14:02:01 +00:00
basic_string.tcc PR libstdc++/58265 implement LWG 2063 for COW strings 2018-07-05 15:56:06 +00:00
boost_concept_check.h Update copyright years. 2018-01-03 10:03:58 +00:00
c++0x_warning.h Update copyright years. 2018-01-03 10:03:58 +00:00
c++config Don't unconditionally define feature test macros in <version> 2018-07-31 22:31:14 +00:00
char_traits.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 14:02:01 +00:00
codecvt.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 14:02:01 +00:00
concept_check.h Update copyright years. 2018-01-03 10:03:58 +00:00
cpp_type_traits.h Add std::__is_byte<std::byte> specialization 2018-06-27 10:30:52 +00:00
deque.tcc 2018-05-02 François Dumont <fdumont@gcc.gnu.org> 2018-05-02 19:51:33 +00:00
enable_special_members.h Update copyright years. 2018-01-03 10:03:58 +00:00
forward_list.h P0646R1 Improving the Return Value of Erase-Like Algorithms I 2018-07-04 20:15:01 +00:00
forward_list.tcc P0646R1 Improving the Return Value of Erase-Like Algorithms I 2018-07-04 20:15:01 +00:00
fs_dir.h PR libstdc++/86595 add missing noexcept 2018-07-20 11:52:54 +00:00
fs_fwd.h Update copyright years. 2018-01-03 10:03:58 +00:00
fs_ops.h Avoid redundant calls to filesystem::status_known 2018-01-04 13:46:22 +00:00
fs_path.h LWG 2989 hide path iostream operators from normal lookup 2018-06-18 18:59:44 +00:00
fstream.tcc Add support for opening file streams from wide character strings 2018-05-21 17:18:35 +00:00
functexcept.h Update copyright years. 2018-01-03 10:03:58 +00:00
functional_hash.h Update copyright years. 2018-01-03 10:03:58 +00:00
gslice.h Update copyright years. 2018-01-03 10:03:58 +00:00
gslice_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 16:41:46 +00:00
hashtable.h 2018-01-09 François Dumont <fdumont@gcc.gnu.org> 2018-01-09 21:05:10 +00:00
hashtable_policy.h Modify some library internals to work without <stdint.h> 2018-07-26 14:02:05 +00:00
indirect_array.h Update copyright years. 2018-01-03 10:03:58 +00:00
invoke.h Update copyright years. 2018-01-03 10:03:58 +00:00
ios_base.h Define special members as defaulted 2018-06-08 16:43:14 +00:00
istream.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
list.tcc P0646R1 Improving the Return Value of Erase-Like Algorithms I 2018-07-04 20:15:01 +00:00
locale_classes.h Update copyright years. 2018-01-03 10:03:58 +00:00
locale_classes.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
locale_conv.h P0935R0 Eradicating unnecessarily explicit default constructors 2018-06-14 14:12:24 +00:00
locale_facets.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 14:02:01 +00:00
locale_facets.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
locale_facets_nonio.h Update copyright years. 2018-01-03 10:03:58 +00:00
locale_facets_nonio.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
localefwd.h Update copyright years. 2018-01-03 10:03:58 +00:00
mask_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 16:41:46 +00:00
memoryfwd.h Update copyright years. 2018-01-03 10:03:58 +00:00
move.h Update copyright years. 2018-01-03 10:03:58 +00:00
node_handle.h PR libstdc++/82966 fix swapping of node handles 2018-05-14 14:27:54 +00:00
ostream.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
ostream_insert.h Update copyright years. 2018-01-03 10:03:58 +00:00
parse_numbers.h PR libstdc++/84671 handle digit separators in duration literals 2018-03-02 20:38:50 +00:00
postypes.h Define std::fpos special members as defaulted 2018-06-04 16:07:55 +00:00
predefined_ops.h Update copyright years. 2018-01-03 10:03:58 +00:00
ptr_traits.h Update copyright years. 2018-01-03 10:03:58 +00:00
quoted_string.h PR libstdc++/86008 add std::quoted support for string_view 2018-06-06 06:05:07 +00:00
random.h PR libstdc++/86168 fix ambiguous default constructor 2018-06-15 16:11:12 +00:00
random.tcc PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 15:36:46 +00:00
range_access.h Update copyright years. 2018-01-03 10:03:58 +00:00
refwrap.h LWG 2993 reference_wrapper<T> conversion from T&& 2018-06-15 14:19:47 +00:00
regex.h Optimize std::sub_match comparisons using string_view-like type 2018-07-02 20:31:11 +00:00
regex.tcc Add missing noexcept on definition to match declaration 2018-06-26 12:24:47 +00:00
regex_automaton.h PR libstdc++/85098 add missing definitions for static constants 2018-05-18 16:14:04 +00:00
regex_automaton.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
regex_compiler.h Optimize std::sub_match comparisons using string_view-like type 2018-07-02 20:31:11 +00:00
regex_compiler.tcc PR libstdc++/85098 add missing definitions for static constants 2018-05-18 16:14:04 +00:00
regex_constants.h Update copyright years. 2018-01-03 10:03:58 +00:00
regex_error.h Update copyright years. 2018-01-03 10:03:58 +00:00
regex_executor.h Update copyright years. 2018-01-03 10:03:58 +00:00
regex_executor.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
regex_scanner.h Update copyright years. 2018-01-03 10:03:58 +00:00
regex_scanner.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
shared_ptr.h PR libstdc++/86537 remove less<shared_ptr<T>> partial specialization 2018-07-16 17:13:41 +00:00
shared_ptr_atomic.h Update copyright years. 2018-01-03 10:03:58 +00:00
shared_ptr_base.h Use default visibility to work around clang -fvisibility-inlines-hidden bug 2018-07-20 11:24:55 +00:00
slice_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 16:41:46 +00:00
specfun.h Update copyright years. 2018-01-03 10:03:58 +00:00
sstream.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
std_abs.h PR libstdc++/85729 add linkage specifications to headers 2018-05-10 12:35:45 +00:00
std_function.h Make std::function tolerate semantically non-CopyConstructible objects 2018-05-09 13:28:11 +00:00
std_mutex.h Move std::unique_lock definition to a separate header 2018-07-25 10:40:12 +00:00
stl_algo.h 2018-06-05 François Dumont <fdumont@gcc.gnu.org> 2018-06-05 05:47:44 +00:00
stl_algobase.h PR libstdc++/86658 fix __niter_wrap to not copy invalid iterators 2018-07-24 20:49:10 +00:00
stl_bvector.h Define special members as defaulted 2018-06-08 16:43:14 +00:00
stl_construct.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_deque.h Some libstdc++ fixes for -Wdeprecated-copy. 2018-05-18 20:02:14 +00:00
stl_function.h PR libstdc++/85040 fix std::less<void> etc. ambiguities 2018-03-22 14:23:27 +00:00
stl_heap.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_iterator.h PR libstdc++/86734 make reverse_iterator::operator-> more robust 2018-07-30 17:13:05 +00:00
stl_iterator_base_funcs.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_iterator_base_types.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_list.h P0646R1 Improving the Return Value of Erase-Like Algorithms I 2018-07-04 20:15:01 +00:00
stl_map.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
stl_multimap.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
stl_multiset.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
stl_numeric.h PR libstdc++/84928 use std::move in <numeric> algorithms 2018-07-06 14:16:13 +00:00
stl_pair.h PR libstdc++/86751 default assignment operators for std::pair 2018-07-31 22:31:20 +00:00
stl_queue.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_raw_storage_iter.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_relops.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_set.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
stl_stack.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_tempbuf.h 2018-06-05 François Dumont <fdumont@gcc.gnu.org> 2018-06-05 05:47:44 +00:00
stl_tree.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
stl_uninitialized.h Update copyright years. 2018-01-03 10:03:58 +00:00
stl_vector.h optimize std::vector move assignment 2018-07-26 12:01:14 +00:00
stream_iterator.h Define special members as defaulted 2018-06-08 16:43:14 +00:00
streambuf.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
streambuf_iterator.h Define special members as defaulted 2018-06-08 16:43:14 +00:00
string_view.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
stringfwd.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 14:02:01 +00:00
uniform_int_dist.h P0935R0 Eradicating unnecessarily explicit default constructors 2018-06-14 13:32:53 +00:00
unique_lock.h Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 14:01:55 +00:00
unique_ptr.h Update copyright years. 2018-01-03 10:03:58 +00:00
unordered_map.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
unordered_set.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 18:16:26 +00:00
uses_allocator.h Reorder conditions in uses-allocator construction helper 2018-07-24 13:03:25 +00:00
valarray_after.h LWG 3074 make scalar types non-deduced in valarray non-member functions 2018-06-14 19:36:54 +00:00
valarray_array.h Add __attribute__((malloc) to allocator and remove unused code 2018-05-14 15:35:12 +00:00
valarray_array.tcc Update copyright years. 2018-01-03 10:03:58 +00:00
valarray_before.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 16:41:46 +00:00
vector.tcc PR libstdc++/83982 fix exception-safety guarantee of std::vector::resize 2018-06-14 09:26:51 +00:00