Implement LWG 2729 for tuple.
commitec51a848cb60875f6fcfd24bda44529ed02c0d21
authorville <ville@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Sep 2016 17:25:16 +0000 (21 17:25 +0000)
committerville <ville@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Sep 2016 17:25:16 +0000 (21 17:25 +0000)
treeb4550db8a90a68c2afeea53d7398291da5409cc6
parent2d0ecf5847036842b9584123aaf4af4800f5fefc
Implement LWG 2729 for tuple.
* include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
Suppress conditionally.
(_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
(__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
(_Tuple_impl(const _Head&)): Constrain.
(_Tuple_impl(_UHead&&)): Likewise.
(_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
(_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
(_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
(operator=(const tuple&)): Enable conditionally.
(operator=(tuple&&)): Suppress conditionally.
(operator=(const tuple<_UElements...>&)): Constrain.
(operator=(tuple<_UElements...>&&)): Likewise.
(operator=(const tuple&)): Enable conditionally (2-param tuple).
(operator=(tuple&&)): Suppress conditionally (2-param tuple).
(operator=(const tuple<_U1, _U2>&)): Constrain.
(operator=(tuple<_U1, _U2>&&)): Likewise.
(operator=(const pair<_U1, _U2>&)): Likewise.
(operator=(pair<_U1, _U2>&&)): Likewise.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
* testsuite/20_util/tuple/tuple_traits.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240323 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/tuple
libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
libstdc++-v3/testsuite/20_util/tuple/tuple_traits.cc [new file with mode: 0644]