diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index 214243b1d..595ec2693 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -2712,8 +2712,9 @@ namespace boost { inline void table::reserve_for_insert(std::size_t num_elements) { if (num_elements > max_load_) { - std::size_t const num_buckets = static_cast( - 1.0f + std::ceil(static_cast(num_elements) / mlf_)); + std::size_t const num_buckets = (std::max)( + static_cast(1.0f + std::ceil(static_cast(num_elements) / mlf_)), + static_cast(bucket_count() + 1)); this->rehash_impl(num_buckets); }