[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:11:11 PDT 2025


https://github.com/asmok-g created https://github.com/llvm/llvm-project/pull/160305

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

>From 6175622c1a042ff59d91f73072af7183e22f2f64 Mon Sep 17 00:00:00 2001
From: Asmaa AbdelGhany <asmok at google.com>
Date: Tue, 23 Sep 2025 15:54:50 +0200
Subject: [PATCH] Also update __gnu_cxx::hash_XXX after (#151951)

Addressing report: https://github.com/llvm/llvm-project/pull/151951#issuecomment-3324120931
---
 libcxx/include/ext/hash_map | 16 ++--------------
 libcxx/include/ext/hash_set | 16 ++--------------
 2 files changed, 4 insertions(+), 28 deletions(-)

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) {



More information about the libcxx-commits mailing list