diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2018-08-20 14:53:56 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2018-08-20 14:53:56 +0100 |
commit | a2c5e1ae5988cef25799a569f3255ac14c8ba41a (patch) | |
tree | 02e1aebc861f087b2cc513bd35717069a19b42f4 /libcpp/include/cpp-id-data.h | |
parent | ea379c9ec3776b9d4f72d5d8c8987e2e43c7baae (diff) | |
download | gcc-a2c5e1ae5988cef25799a569f3255ac14c8ba41a.zip gcc-a2c5e1ae5988cef25799a569f3255ac14c8ba41a.tar.gz gcc-a2c5e1ae5988cef25799a569f3255ac14c8ba41a.tar.bz2 |
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
Diffstat (limited to 'libcpp/include/cpp-id-data.h')
0 files changed, 0 insertions, 0 deletions