diff --git a/boost/unordered/detail/equivalent.hpp b/boost/unordered/detail/equivalent.hpp index d67ab1420fb..2e55bec789e 100644 --- a/boost/unordered/detail/equivalent.hpp +++ b/boost/unordered/detail/equivalent.hpp @@ -748,7 +748,7 @@ namespace boost { namespace unordered { namespace detail { // strong otherwise exception safety void rehash_impl(std::size_t num_buckets) { - BOOST_ASSERT(this->size_); + BOOST_ASSERT(this->buckets_); this->create_buckets(num_buckets); previous_pointer prev = this->get_previous_start(); diff --git a/boost/unordered/detail/unique.hpp b/boost/unordered/detail/unique.hpp index 3aba72d7627..bd3c63cd43c 100644 --- a/boost/unordered/detail/unique.hpp +++ b/boost/unordered/detail/unique.hpp @@ -636,7 +636,7 @@ namespace boost { namespace unordered { namespace detail { // strong otherwise exception safety void rehash_impl(std::size_t num_buckets) { - BOOST_ASSERT(this->size_); + BOOST_ASSERT(this->buckets_); this->create_buckets(num_buckets); previous_pointer prev = this->get_previous_start(); diff --git a/libs/unordered/test/unordered/insert_tests.cpp b/libs/unordered/test/unordered/insert_tests.cpp index 2f0631618b4..c167e0eec14 100644 --- a/libs/unordered/test/unordered/insert_tests.cpp +++ b/libs/unordered/test/unordered/insert_tests.cpp @@ -229,6 +229,24 @@ void insert_tests2(X*, test::random_generator generator) test::check_equivalent_keys(x); } + std::cerr<<"insert range with rehash tests.\n"; + + { + test::check_instances check_; + + X x; + + test::random_values v(1000, generator); + + x.insert(*v.begin()); + x.clear(); + + x.insert(v.begin(), v.end()); + + test::check_container(x, v); + test::check_equivalent_keys(x); + } + std::cerr<<"insert input iterator range tests.\n"; {