@@ -1046,10 +1046,11 @@ public:
10461046# endif
10471047
10481048 _LIBCPP_HIDE_FROM_ABI explicit unordered_map (const allocator_type& __a);
1049- _LIBCPP_HIDE_FROM_ABI unordered_map (const unordered_map& __u);
1049+ _LIBCPP_HIDE_FROM_ABI unordered_map (const unordered_map& __u) = default ;
10501050 _LIBCPP_HIDE_FROM_ABI unordered_map (const unordered_map& __u, const allocator_type& __a);
10511051# ifndef _LIBCPP_CXX03_LANG
1052- _LIBCPP_HIDE_FROM_ABI unordered_map (unordered_map&& __u) _NOEXCEPT_(is_nothrow_move_constructible<__table>::value);
1052+ _LIBCPP_HIDE_FROM_ABI unordered_map (unordered_map&& __u)
1053+ _NOEXCEPT_(is_nothrow_move_constructible<__table>::value) = default;
10531054 _LIBCPP_HIDE_FROM_ABI unordered_map (unordered_map&& __u, const allocator_type& __a);
10541055 _LIBCPP_HIDE_FROM_ABI unordered_map (initializer_list<value_type> __il);
10551056 _LIBCPP_HIDE_FROM_ABI
@@ -1099,24 +1100,10 @@ public:
10991100 static_assert (sizeof (std::__diagnose_unordered_container_requirements<_Key, _Hash, _Pred>(0 )), " " );
11001101 }
11011102
1102- _LIBCPP_HIDE_FROM_ABI unordered_map& operator =(const unordered_map& __u) {
1103- # ifndef _LIBCPP_CXX03_LANG
1104- __table_ = __u.__table_ ;
1105- # else
1106- if (this != std::addressof (__u)) {
1107- __table_.clear ();
1108- __table_.hash_function () = __u.__table_ .hash_function ();
1109- __table_.key_eq () = __u.__table_ .key_eq ();
1110- __table_.max_load_factor () = __u.__table_ .max_load_factor ();
1111- __table_.__copy_assign_alloc (__u.__table_ );
1112- insert (__u.begin (), __u.end ());
1113- }
1114- # endif
1115- return *this ;
1116- }
1103+ _LIBCPP_HIDE_FROM_ABI unordered_map& operator =(const unordered_map& __u) = default;
11171104# ifndef _LIBCPP_CXX03_LANG
11181105 _LIBCPP_HIDE_FROM_ABI unordered_map& operator =(unordered_map&& __u)
1119- _NOEXCEPT_ (is_nothrow_move_assignable<__table>::value);
1106+ _NOEXCEPT_ (is_nothrow_move_assignable<__table>::value) = default ;
11201107 _LIBCPP_HIDE_FROM_ABI unordered_map& operator =(initializer_list<value_type> __il);
11211108# endif // _LIBCPP_CXX03_LANG
11221109
@@ -1563,12 +1550,6 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
15631550 insert (__first, __last);
15641551}
15651552
1566- template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
1567- unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(const unordered_map& __u) : __table_(__u.__table_) {
1568- __table_.__rehash_unique (__u.bucket_count ());
1569- insert (__u.begin (), __u.end ());
1570- }
1571-
15721553template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
15731554unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(const unordered_map& __u, const allocator_type& __a)
15741555 : __table_(__u.__table_, typename __table::allocator_type (__a)) {
@@ -1578,11 +1559,6 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(const unordered_ma
15781559
15791560# ifndef _LIBCPP_CXX03_LANG
15801561
1581- template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
1582- inline unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(unordered_map&& __u)
1583- _NOEXCEPT_ (is_nothrow_move_constructible<__table>::value)
1584- : __table_(std::move(__u.__table_)) {}
1585-
15861562template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
15871563unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(unordered_map&& __u, const allocator_type& __a)
15881564 : __table_(std::move(__u.__table_), typename __table::allocator_type (__a)) {
@@ -1618,14 +1594,6 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
16181594 insert (__il.begin (), __il.end ());
16191595}
16201596
1621- template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
1622- inline unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&
1623- unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator =(unordered_map&& __u)
1624- _NOEXCEPT_ (is_nothrow_move_assignable<__table>::value) {
1625- __table_ = std::move (__u.__table_ );
1626- return *this ;
1627- }
1628-
16291597template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
16301598inline unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&
16311599unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator =(initializer_list<value_type> __il) {
@@ -1852,11 +1820,11 @@ public:
18521820# endif
18531821
18541822 _LIBCPP_HIDE_FROM_ABI explicit unordered_multimap (const allocator_type& __a);
1855- _LIBCPP_HIDE_FROM_ABI unordered_multimap (const unordered_multimap& __u);
1823+ _LIBCPP_HIDE_FROM_ABI unordered_multimap (const unordered_multimap& __u) = default ;
18561824 _LIBCPP_HIDE_FROM_ABI unordered_multimap (const unordered_multimap& __u, const allocator_type& __a);
18571825# ifndef _LIBCPP_CXX03_LANG
18581826 _LIBCPP_HIDE_FROM_ABI unordered_multimap (unordered_multimap&& __u)
1859- _NOEXCEPT_(is_nothrow_move_constructible<__table>::value);
1827+ _NOEXCEPT_(is_nothrow_move_constructible<__table>::value) = default ;
18601828 _LIBCPP_HIDE_FROM_ABI unordered_multimap (unordered_multimap&& __u, const allocator_type& __a);
18611829 _LIBCPP_HIDE_FROM_ABI unordered_multimap (initializer_list<value_type> __il);
18621830 _LIBCPP_HIDE_FROM_ABI unordered_multimap (
@@ -1906,24 +1874,10 @@ public:
19061874 static_assert (sizeof (std::__diagnose_unordered_container_requirements<_Key, _Hash, _Pred>(0 )), " " );
19071875 }
19081876
1909- _LIBCPP_HIDE_FROM_ABI unordered_multimap& operator =(const unordered_multimap& __u) {
1910- # ifndef _LIBCPP_CXX03_LANG
1911- __table_ = __u.__table_ ;
1912- # else
1913- if (this != std::addressof (__u)) {
1914- __table_.clear ();
1915- __table_.hash_function () = __u.__table_ .hash_function ();
1916- __table_.key_eq () = __u.__table_ .key_eq ();
1917- __table_.max_load_factor () = __u.__table_ .max_load_factor ();
1918- __table_.__copy_assign_alloc (__u.__table_ );
1919- insert (__u.begin (), __u.end ());
1920- }
1921- # endif
1922- return *this ;
1923- }
1877+ _LIBCPP_HIDE_FROM_ABI unordered_multimap& operator =(const unordered_multimap& __u) = default;
19241878# ifndef _LIBCPP_CXX03_LANG
19251879 _LIBCPP_HIDE_FROM_ABI unordered_multimap& operator =(unordered_multimap&& __u)
1926- _NOEXCEPT_ (is_nothrow_move_assignable<__table>::value);
1880+ _NOEXCEPT_ (is_nothrow_move_assignable<__table>::value) = default ;
19271881 _LIBCPP_HIDE_FROM_ABI unordered_multimap& operator =(initializer_list<value_type> __il);
19281882# endif // _LIBCPP_CXX03_LANG
19291883
@@ -2315,13 +2269,6 @@ template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
23152269inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(const allocator_type& __a)
23162270 : __table_(typename __table::allocator_type (__a)) {}
23172271
2318- template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
2319- unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(const unordered_multimap& __u)
2320- : __table_(__u.__table_) {
2321- __table_.__rehash_multi (__u.bucket_count ());
2322- insert (__u.begin (), __u.end ());
2323- }
2324-
23252272template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
23262273unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
23272274 const unordered_multimap& __u, const allocator_type& __a)
@@ -2332,11 +2279,6 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
23322279
23332280# ifndef _LIBCPP_CXX03_LANG
23342281
2335- template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
2336- inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(unordered_multimap&& __u)
2337- _NOEXCEPT_ (is_nothrow_move_constructible<__table>::value)
2338- : __table_(std::move(__u.__table_)) {}
2339-
23402282template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
23412283unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
23422284 unordered_multimap&& __u, const allocator_type& __a)
@@ -2373,14 +2315,6 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
23732315 insert (__il.begin (), __il.end ());
23742316}
23752317
2376- template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
2377- inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&
2378- unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::operator =(unordered_multimap&& __u)
2379- _NOEXCEPT_ (is_nothrow_move_assignable<__table>::value) {
2380- __table_ = std::move (__u.__table_ );
2381- return *this ;
2382- }
2383-
23842318template <class _Key , class _Tp , class _Hash , class _Pred , class _Alloc >
23852319inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&
23862320unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::operator =(initializer_list<value_type> __il) {
0 commit comments