diff options
Diffstat (limited to 'test/std/containers/unord/unord.map/reserve.pass.cpp')
-rw-r--r-- | test/std/containers/unord/unord.map/reserve.pass.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/std/containers/unord/unord.map/reserve.pass.cpp b/test/std/containers/unord/unord.map/reserve.pass.cpp index 48667cdc7f92..bef237f960af 100644 --- a/test/std/containers/unord/unord.map/reserve.pass.cpp +++ b/test/std/containers/unord/unord.map/reserve.pass.cpp @@ -31,6 +31,21 @@ void test(const C& c) assert(c.at(4) == "four"); } +void reserve_invariant(size_t n) // LWG #2156 +{ + for (size_t i = 0; i < n; ++i) + { + std::unordered_map<size_t, size_t> c; + c.reserve(n); + size_t buckets = c.bucket_count(); + for (size_t j = 0; j < i; ++j) + { + c[i] = i; + assert(buckets == c.bucket_count()); + } + } +} + int main() { { @@ -88,4 +103,5 @@ int main() test(c); } #endif + reserve_invariant(20); } |