Fix transparent erase signature to "K&&"

This commit is contained in:
Ion Gaztañaga
2025-11-03 23:55:52 +01:00
parent 73d91c52ce
commit 2932339965
4 changed files with 9 additions and 5 deletions

View File

@@ -1175,8 +1175,9 @@ class flat_tree
!dtl::is_convertible<K, iterator>::value && //not convertible to iterator
!dtl::is_convertible<K, const_iterator>::value //not convertible to const_iterator
, size_type>::type
erase(const K& k)
erase(BOOST_FWD_REF(K) key)
{
const typename remove_cvref<K>::type & k = key; //Support emulated rvalue references
std::pair<iterator, iterator > itp = this->equal_range(k);
size_type ret = static_cast<size_type>(itp.second - itp.first);
if (ret) {

View File

@@ -1152,8 +1152,11 @@ class tree
!dtl::is_convertible<K, iterator>::value && //not convertible to iterator
!dtl::is_convertible<K, const_iterator>::value //not convertible to const_iterator
, size_type>::type
erase(const K& k)
{ return AllocHolder::erase_key(k, KeyNodeCompare(key_comp()), alloc_version()); }
erase(BOOST_FWD_REF(K) key)
{
const typename remove_cvref<K>::type & k = key; //Support emulated rvalue references
return AllocHolder::erase_key(k, KeyNodeCompare(key_comp()), alloc_version());
}
template <class K>
inline typename dtl::enable_if_c<

View File

@@ -1333,7 +1333,7 @@ class flat_map
!dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
!dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
BOOST_MOVE_I size_type>::type)
erase(const K& x)
erase(BOOST_FWD_REF(K) x)
{ return m_flat_tree.erase_unique(x); }
//! <b>Effects</b>: Erases all the elements in the range [first, last).

View File

@@ -1032,7 +1032,7 @@ class map
!dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
!dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
BOOST_MOVE_I size_type>::type)
erase(const K& x)
erase(BOOST_FWD_REF(K) x)
{ return this->base_t::erase_unique(x); }
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)