aboutsummaryrefslogtreecommitdiff
path: root/libcpp/init.cc
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2022-08-23 13:42:37 -0400
committerPatrick Palka <ppalka@redhat.com>2022-08-23 13:42:37 -0400
commit72886fcc6269531bbf3d9a09b3d64644963bff0d (patch)
treead19ae595e927e200e464a4499b997c8e0d33660 /libcpp/init.cc
parent02f6b405f0e9dc7a8868fecef9a048b79c433125 (diff)
downloadgcc-72886fcc6269531bbf3d9a09b3d64644963bff0d.zip
gcc-72886fcc6269531bbf3d9a09b3d64644963bff0d.tar.gz
gcc-72886fcc6269531bbf3d9a09b3d64644963bff0d.tar.bz2
libstdc++: Implement std::pair/tuple/misc enhancements from P2321R2
This implements the non-<ranges> changes from P2321R2, which primarily consist of additional converting constructors, assignment operator and swap overloads for std::pair and std::tuple. libstdc++-v3/ChangeLog: * include/bits/stl_bvector.h (_Bit_reference::operator=): Define const overload for C++23 as per P2321R2. * include/bits/stl_pair.h (pair::swap): Likewise. (pair::pair): Define additional converting constructors for C++23 as per P2321R2. (pair::operator=): Define const overloads for C++23 as per P2321R2. (swap): Define overload taking const pair& for C++23 as per P2321R2. (basic_common_reference): Define partial specialization for pair for C++23 as per P2321R2. (common_type): Likewise. * include/bits/uses_allocator_args.h (uses_allocator_construction_args): Define additional pair overloads for C++23 as per P2321R2. * include/std/tuple (_Tuple_impl::_Tuple_impl): Define additional converting constructors for C++23 as per P2321R2. (_Tuple_impl::_M_assign): Define const overloads for C++23 as per P2321R2. (_Tuple_impl::_M_swap): Likewise. (tuple::__constructible): Define as a convenient renaming of _TCC<true>::__constructible. (tuple::__convertible): As above but for _TCC<true>::__convertible. (tuple::tuple): Define additional converting constructors for C++23 as per P2321R2. (tuple::operator=): Define const overloads for C++23 as per P2321R2. (tuple::swap): Likewise. (basic_common_reference): Define partial specialization for tuple for C++23 as per P2321R2. (common_type): Likewise. * testsuite/20_util/pair/p2321r2.cc: New test. * testsuite/20_util/tuple/p2321r2.cc: New test. * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
Diffstat (limited to 'libcpp/init.cc')
0 files changed, 0 insertions, 0 deletions