diff --git a/include/boost/unordered/detail/equivalent.hpp b/include/boost/unordered/detail/equivalent.hpp index d67ab142..2e55bec7 100644 --- a/include/boost/unordered/detail/equivalent.hpp +++ b/include/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/include/boost/unordered/detail/unique.hpp b/include/boost/unordered/detail/unique.hpp index 3aba72d7..bd3c63cd 100644 --- a/include/boost/unordered/detail/unique.hpp +++ b/include/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/test/unordered/insert_tests.cpp b/test/unordered/insert_tests.cpp index 2f063161..c167e0ee 100644 --- a/test/unordered/insert_tests.cpp +++ b/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"; {