gcc/libstdc++-v3
Jonathan Wakely a2c5e1ae59 PR libstdc++/86963 Remove use of __tuple_base in std::tuple
The _Tuple_impl base class can be used to disable copy/move assignment,
without requiring an extra base class.

Exception specifications on std::tuple assignment and swap functions can
be defined directly using is_nothrow_swappable, instead of querying the
base classes.

	PR libstdc++/86963
	* include/std/tuple (_Tuple_impl::operator=): Define as deleted.
	(_Tuple_impl::_M_assign): New functions to perform assignment instead
	of assignment operators.
	(_Tuple_impl::_M_swap): Remove exception specification.
	(_Tuple_impl<_Idx, _Head>): Likewise.
	(_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
	(__tuple_base): Remove.
	(tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
	(tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
	(tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
	using __is_nothrow_swappable.
	(tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.

From-SVN: r263661
2018-08-20 14:53:56 +01:00
..
config PR libstdc++/85343 overload __throw_ios_failure to take errno 2018-08-14 13:09:57 +01:00
doc PR libstdc++/85343 overload __throw_ios_failure to take errno 2018-08-14 13:09:57 +01:00
include PR libstdc++/86963 Remove use of __tuple_base in std::tuple 2018-08-20 14:53:56 +01:00
libsupc++ Minor optimisations in operator new(size_t, align_val_t) 2018-08-13 19:54:38 +01:00
po PR libstdc++/86450 use -Wabi=2 and simplify -Werror use 2018-07-17 14:18:47 +01:00
python PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment 2018-08-17 18:52:49 +01:00
scripts * scripts/create_testsuite_files: Fix typo in comment. 2018-07-16 18:42:20 +01:00
src Fix bootstrap with --enable-fully-dynamic-string 2018-08-16 16:56:21 +01:00
testsuite Refactor std::optional SFINAE constraints 2018-08-20 13:13:25 +01:00
ChangeLog PR libstdc++/86963 Remove use of __tuple_base in std::tuple 2018-08-20 14:53:56 +01: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 Update copyright years. 2017-01-01 13:07:43 +01:00
ChangeLog-2017 Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.am Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.in PR libstdc++/86450 use -Wabi=2 and simplify -Werror use 2018-07-17 14:18:47 +01:00
README
acinclude.m4 Add new src/c++17 directory to list in acinclude.m4 2018-07-25 12:01:39 +01:00
aclocal.m4 Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts] 2017-01-06 14:33:47 +00:00
config.h.in Fix bootstrap failure for bare metal due to autoconf link tests 2018-06-18 17:01:24 +01:00
configure Revert "libstdc++-v3: Have aligned_alloc() on Newlib" 2018-08-13 19:54:21 +01:00
configure.ac Revert "libstdc++-v3: Have aligned_alloc() on Newlib" 2018-08-13 19:54:21 +01:00
configure.host Separate Solaris/SPARC and x86 baselines 2017-02-02 16:24:03 +00:00
crossconfig.m4 crossconfig.m4: Handle OpenBSD just like NetBSD. 2018-06-18 11:28:53 -06:00
fragment.am PR libstdc++/86450 use -Wabi=2 and simplify -Werror use 2018-07-17 14:18:47 +01:00
linkage.m4

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.