gcc/libstdc++-v3
Ville Voutilainen a2863bde75 Implement LWG 2766,
Swapping non-swappable types and LWG 2749,
swappable traits for variants.
* include/bits/move.h (swap(_Tp&, _Tp&)): Constrain
with __is_tuple_like.
* include/bits/stl_pair.h (swap(pair<_T1, _T2>&, pair<_T1, _T2>&)):
Add a deleted overload.
* include/bits/unique_ptr.h
(swap(unique_ptr<_Tp, _Dp>&, unique_ptr<_Tp, _Dp>&)): Likewise.
* include/std/array
(swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&)): Likewise.
* include/std/optional
(swap(optional<_Tp>&, optional<_Tp>&)): Likewise.
* include/std/tuple (__is_tuple_like_impl, __is_tuple_like):
Move to type_traits.
(swap(tuple<_Elements...>&, tuple<_Elements...>&)): Add a deleted
overload.
* include/std/type_traits (__is_tuple_like_impl, __is_tuple_like):
New.
(swap(_Tp&, _Tp&)): Constrain with __is_tuple_like.
* include/std/utility (__is_tuple_like_impl): Move to type_traits.
* include/std/variant
(swap(variant<_Types...>&, variant<_Types...>&)):
Add a deleted overload.
* testsuite/20_util/optional/swap/2.cc: Add tests for disabled
swaps.
* testsuite/20_util/pair/swap_cxx17.cc: New.
* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
Likewise.
* testsuite/20_util/variant/compile.cc: Add tests for disabled
swaps.
* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r243120
2016-12-01 18:23:21 +02:00
..
config gnu-versioned-namespace.ver: Export C++17 new of over-aligned types symbols. 2016-11-07 21:12:36 +00:00
doc Make std::tuple_size<cv T> SFINAE-friendly (LWG 2770) 2016-11-15 19:32:44 +00:00
include Implement LWG 2766, 2016-12-01 18:23:21 +02:00
libsupc++ PR 59406 note that FNV hash functions are incorrect 2016-11-15 20:17:39 +00:00
po
python
scripts
src * src/filesystem/ops.cc (is_empty): Fix typo in exception message. 2016-11-12 20:28:55 +00:00
testsuite Implement LWG 2766, 2016-12-01 18:23:21 +02:00
acinclude.m4 Don't define libstdc++-internal macros in Solaris 10+ <math.h> 2016-11-21 16:09:47 +00:00
aclocal.m4
ChangeLog Implement LWG 2766, 2016-12-01 18:23:21 +02: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
config.h.in Don't define libstdc++-internal macros in Solaris 10+ <math.h> 2016-11-21 16:09:47 +00:00
configure crossconfig.m4 (*-linux*): Add link-check for memalign. 2016-12-01 06:06:04 +00:00
configure.ac
configure.host
crossconfig.m4 crossconfig.m4 (*-linux*): Add link-check for memalign. 2016-12-01 06:06:04 +00:00
fragment.am
linkage.m4
Makefile.am
Makefile.in
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.