diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index b7f18498..d3612c21 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -3358,13 +3358,6 @@ inline void table::rehash(std::size_t min_buckets) } } -template -inline void table::reserve(std::size_t num_elements) -{ - rehash(static_cast( - std::ceil(static_cast(num_elements) / mlf_))); -} - template inline void table::rehash_impl(std::size_t num_buckets) { diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index d5c45f3e..08135a57 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -1744,7 +1744,8 @@ void unordered_map::rehash(size_type n) template void unordered_map::reserve(size_type n) { - table_.reserve(n); + table_.rehash(static_cast( + std::ceil(static_cast(n) / table_.mlf_))); } template @@ -2167,7 +2168,8 @@ void unordered_multimap::rehash(size_type n) template void unordered_multimap::reserve(size_type n) { - table_.reserve(n); + table_.rehash(static_cast( + std::ceil(static_cast(n) / table_.mlf_))); } template diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index cda04175..705c9b87 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -1379,7 +1379,8 @@ void unordered_set::rehash(size_type n) template void unordered_set::reserve(size_type n) { - table_.reserve(n); + table_.rehash(static_cast( + std::ceil(static_cast(n) / table_.mlf_))); } template @@ -1768,7 +1769,8 @@ void unordered_multiset::rehash(size_type n) template void unordered_multiset::reserve(size_type n) { - table_.reserve(n); + table_.rehash(static_cast( + std::ceil(static_cast(n) / table_.mlf_))); } template