[libcxx-commits] [libcxx] Also update __gnu_cxx::hash_XXX after (#151951) (PR #160305)

via libcxx-commits libcxx-commits at lists.llvm.org
Tue Sep 23 07:12:05 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: None (asmok-g)

<details>
<summary>Changes</summary>

Addressing report: https://github.com/llvm/llvm-project/pull/151951#issuecomment-3324120931

---
Full diff: https://github.com/llvm/llvm-project/pull/160305.diff


2 Files Affected:

- (modified) libcxx/include/ext/hash_map (+2-14) 
- (modified) libcxx/include/ext/hash_set (+2-14) 


``````````diff
diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map
index 70c2fbeec2959..73ebe134c6645 100644
--- a/libcxx/include/ext/hash_map
+++ b/libcxx/include/ext/hash_map
@@ -472,7 +472,7 @@ public:
            const hasher& __hf,
            const key_equal& __eql,
            const allocator_type& __a);
-  _LIBCPP_HIDE_FROM_ABI hash_map(const hash_map& __u);
+  _LIBCPP_HIDE_FROM_ABI hash_map(const hash_map& __u) = default;
 
   _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const { return allocator_type(__table_.__node_alloc()); }
 
@@ -569,12 +569,6 @@ hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
   insert(__first, __last);
 }
 
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(const hash_map& __u) : __table_(__u.__table_) {
-  __table_.__rehash_unique(__u.bucket_count());
-  insert(__u.begin(), __u.end());
-}
-
 template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
 typename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__node_holder
 hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__construct_node(const key_type& __k) {
@@ -696,7 +690,7 @@ public:
       const hasher& __hf,
       const key_equal& __eql,
       const allocator_type& __a);
-  _LIBCPP_HIDE_FROM_ABI hash_multimap(const hash_multimap& __u);
+  _LIBCPP_HIDE_FROM_ABI hash_multimap(const hash_multimap& __u) = default;
 
   _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const { return allocator_type(__table_.__node_alloc()); }
 
@@ -786,12 +780,6 @@ hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
   insert(__first, __last);
 }
 
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(const hash_multimap& __u) : __table_(__u.__table_) {
-  __table_.__rehash_multi(__u.bucket_count());
-  insert(__u.begin(), __u.end());
-}
-
 template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
 template <class _InputIterator>
 inline void hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, _InputIterator __last) {
diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set
index 62a7a0dbcffb9..29e258ca382f8 100644
--- a/libcxx/include/ext/hash_set
+++ b/libcxx/include/ext/hash_set
@@ -265,7 +265,7 @@ public:
            const hasher& __hf,
            const key_equal& __eql,
            const allocator_type& __a);
-  _LIBCPP_HIDE_FROM_ABI hash_set(const hash_set& __u);
+  _LIBCPP_HIDE_FROM_ABI hash_set(const hash_set& __u) = default;
 
   _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const { return allocator_type(__table_.__node_alloc()); }
 
@@ -355,12 +355,6 @@ hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(
   insert(__first, __last);
 }
 
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(const hash_set& __u) : __table_(__u.__table_) {
-  __table_.__rehash_unique(__u.bucket_count());
-  insert(__u.begin(), __u.end());
-}
-
 template <class _Value, class _Hash, class _Pred, class _Alloc>
 template <class _InputIterator>
 inline void hash_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, _InputIterator __last) {
@@ -445,7 +439,7 @@ public:
       const hasher& __hf,
       const key_equal& __eql,
       const allocator_type& __a);
-  _LIBCPP_HIDE_FROM_ABI hash_multiset(const hash_multiset& __u);
+  _LIBCPP_HIDE_FROM_ABI hash_multiset(const hash_multiset& __u) = default;
 
   _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const { return allocator_type(__table_.__node_alloc()); }
 
@@ -533,12 +527,6 @@ hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
   insert(__first, __last);
 }
 
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(const hash_multiset& __u) : __table_(__u.__table_) {
-  __table_.__rehash_multi(__u.bucket_count());
-  insert(__u.begin(), __u.end());
-}
-
 template <class _Value, class _Hash, class _Pred, class _Alloc>
 template <class _InputIterator>
 inline void hash_multiset<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first, _InputIterator __last) {

``````````

</details>


https://github.com/llvm/llvm-project/pull/160305


More information about the libcxx-commits mailing list