From 9cd673c71d82ae4e64e164527071a99548c0076a Mon Sep 17 00:00:00 2001 From: Daniel James Date: Thu, 20 Apr 2017 22:59:00 +0100 Subject: [PATCH] Specify clear as noexcept --- include/boost/unordered/unordered_map.hpp | 8 ++++---- include/boost/unordered/unordered_set.hpp | 8 ++++---- test/unordered/compile_tests.hpp | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index f12666c4..51d37e6b 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -682,7 +682,7 @@ template class unordered_map // value_allocator_traits::is_always_equal::value && // is_nothrow_move_assignable_v && // is_nothrow_move_assignable_v

) - void clear(); + void clear() BOOST_NOEXCEPT; template void merge(boost::unordered_map& source); @@ -1188,7 +1188,7 @@ template class unordered_multimap // value_allocator_traits::is_always_equal::value && // is_nothrow_move_assignable_v && // is_nothrow_move_assignable_v

) - void clear(); + void clear() BOOST_NOEXCEPT; template void merge(boost::unordered_multimap& source); @@ -1504,7 +1504,7 @@ void unordered_map::swap(unordered_map& other) } template -void unordered_map::clear() +void unordered_map::clear() BOOST_NOEXCEPT { table_.clear(); } @@ -1927,7 +1927,7 @@ void unordered_multimap::swap(unordered_multimap& other) } template -void unordered_multimap::clear() +void unordered_multimap::clear() BOOST_NOEXCEPT { table_.clear(); } diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 58731b43..6300d6d3 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -421,7 +421,7 @@ template class unordered_set // value_allocator_traits::is_always_equal::value && // is_nothrow_move_assignable_v && // is_nothrow_move_assignable_v

) - void clear(); + void clear() BOOST_NOEXCEPT; template void merge(boost::unordered_set& source); @@ -896,7 +896,7 @@ template class unordered_multiset // value_allocator_traits::is_always_equal::value && // is_nothrow_move_assignable_v && // is_nothrow_move_assignable_v

) - void clear(); + void clear() BOOST_NOEXCEPT; template void merge(boost::unordered_multiset& source); @@ -1193,13 +1193,13 @@ void unordered_set::swap(unordered_set& other) } template -void unordered_set::clear() +void unordered_set::clear() BOOST_NOEXCEPT { table_.clear(); } template -void unordered_multiset::clear() +void unordered_multiset::clear() BOOST_NOEXCEPT { table_.clear(); } diff --git a/test/unordered/compile_tests.hpp b/test/unordered/compile_tests.hpp index 45ad2111..c676f2d5 100644 --- a/test/unordered/compile_tests.hpp +++ b/test/unordered/compile_tests.hpp @@ -554,6 +554,7 @@ void unordered_test(X& x, Key& k, Hash& hf, Pred& eq) const_iterator q1 = a.cbegin(), q2 = a.cend(); test::check_return_type::equals(a.erase(q1, q2)); + TEST_NOEXCEPT_EXPR(a.clear()); a.clear(); X const b;