diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 0210056d..d6f1abc3 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -1125,6 +1125,23 @@ namespace boost { const_iterator find(CompatibleKey const&, CompatibleHash const&, CompatiblePredicate const&) const; + bool contains(const key_type& k) const + { + return table_.find_node_impl( + table::policy::apply_hash(this->hash_function(), k), k, + this->key_eq()); + } + + template + typename boost::enable_if_c::value, + bool>::type + contains(const Key& k) const + { + return table_.find_node_impl( + table::policy::apply_hash(this->hash_function(), k), k, + this->key_eq()); + } + size_type count(const key_type&) const; template diff --git a/test/unordered/contains_tests.cpp b/test/unordered/contains_tests.cpp index 45bc59d9..e6123959 100644 --- a/test/unordered/contains_tests.cpp +++ b/test/unordered/contains_tests.cpp @@ -246,6 +246,25 @@ void test_set() test_set_non_transparent_contains(); } +void test_multiset() +{ + typedef boost::unordered_multiset + transparent_multiset; + + typedef boost::unordered_multiset + non_transparent_multiset1; + typedef boost::unordered_multiset + non_transparent_multiset2; + typedef boost::unordered_multiset + non_transparent_multiset3; + + test_set_transparent_contains(); + test_set_non_transparent_contains(); + test_set_non_transparent_contains(); + test_set_non_transparent_contains(); +} + UNORDERED_AUTO_TEST (contains) { test_map(); test_multimap();