gcc/libstdc++-v3/testsuite/20_util/tuple
Jonathan Wakely 478490f681 PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment
PR libstdc++/86963
	* include/std/tuple (__tuple_base): New class template with deleted
	copy assignment operator.
	(tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
	implicit copy/move assignment operator will be deleted/suppressed.
	(tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
	functions for SFINAE constraints on assignment operators.
	(tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
	New helper functions for exception specifications.
	(tuple::operator=(const tuple&), tuple::operator=(tuple&&))
	(tuple<_T1, _T2>::operator=(const tuple&))
	(tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
	__nonesuch_no_braces when the operator should be defined implicitly.
	Use __nothrow_assignable for exception specifications.
	(tuple::operator=(const tuple<_UElements...>&))
	(tuple::operator=(tuple<_UElements...>&&))
	(tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
	(tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
	(tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
	(tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
	__assignable and use __nothrow_assignable for exception
	specifications.
	* python/libstdcxx/v6/printers.py (is_specialization_of): Accept
	gdb.Type as first argument, instead of a string.
	(StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
	tuple for expected structure.
	(StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
	* testsuite/20_util/tuple/dr2729.cc: New test.
	* testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
	to dg-prune-output.

From-SVN: r263625
2018-08-17 18:52:49 +01:00
..
apply Update copyright years. 2018-01-03 11:03:58 +01:00
comparison_operators Update copyright years. 2018-01-03 11:03:58 +01:00
cons Update copyright years. 2018-01-03 11:03:58 +01:00
creation_functions Update copyright years. 2018-01-03 11:03:58 +01:00
element_access PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment 2018-08-17 18:52:49 +01:00
make_from_tuple Update copyright years. 2018-01-03 11:03:58 +01:00
requirements Update copyright years. 2018-01-03 11:03:58 +01:00
48476.cc Update copyright years. 2018-01-03 11:03:58 +01:00
51365.cc Update copyright years. 2018-01-03 11:03:58 +01:00
53648.cc Update copyright years. 2018-01-03 11:03:58 +01:00
56785.cc Update copyright years. 2018-01-03 11:03:58 +01:00
60497.cc Update copyright years. 2018-01-03 11:03:58 +01:00
61947.cc Update copyright years. 2018-01-03 11:03:58 +01:00
67844.cc Update copyright years. 2018-01-03 11:03:58 +01:00
77395.cc Update copyright years. 2018-01-03 11:03:58 +01:00
77802.cc Update copyright years. 2018-01-03 11:03:58 +01:00
78939.cc Update copyright years. 2018-01-03 11:03:58 +01:00
cv_tuple_element.cc Update copyright years. 2018-01-03 11:03:58 +01:00
cv_tuple_size.cc Update copyright years. 2018-01-03 11:03:58 +01:00
cv_tuple_size_neg.cc Update copyright years. 2018-01-03 11:03:58 +01:00
dr2729.cc PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment 2018-08-17 18:52:49 +01:00
moveable.cc Update copyright years. 2018-01-03 11:03:58 +01:00
moveable2.cc Update copyright years. 2018-01-03 11:03:58 +01:00
noexcept_move_assign.cc Update copyright years. 2018-01-03 11:03:58 +01:00
noexcept_swap.cc Update copyright years. 2018-01-03 11:03:58 +01:00
swap.cc Update copyright years. 2018-01-03 11:03:58 +01:00
swap_cxx17.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tuple_element.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tuple_element_t.cc Define __cpp_lib_tuple_element_t in <tuple> not <utility> 2018-06-14 15:01:29 +01:00
tuple_size.cc Update copyright years. 2018-01-03 11:03:58 +01:00
tuple_size_v.cc Update copyright years. 2018-01-03 11:03:58 +01:00