diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index f710c702..ecb12bda 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -1053,6 +1053,16 @@ namespace boost { const_iterator find(const key_type&) const; + template + typename boost::enable_if_c::value, + const_iterator>::type + find(const Key& k) const + { + return const_iterator(table_.find_node_impl( + table::policy::apply_hash(this->hash_function(), k), k, + this->key_eq())); + } + template const_iterator find(CompatibleKey const&, CompatibleHash const&, diff --git a/test/unordered/transparent_tests.cpp b/test/unordered/transparent_tests.cpp index 3f7871f4..e703a13a 100644 --- a/test/unordered/transparent_tests.cpp +++ b/test/unordered/transparent_tests.cpp @@ -1488,6 +1488,7 @@ void test_unordered_multiset() transparent_key_equal> unordered_set; + test_set_transparent_find(); test_set_transparent_equal_range(); } @@ -1496,6 +1497,7 @@ void test_unordered_multiset() // typedef boost::unordered_multiset unordered_set; + test_set_non_transparent_find(); test_set_non_transparent_equal_range(); } @@ -1505,6 +1507,7 @@ void test_unordered_multiset() typedef boost::unordered_multiset unordered_set; + test_set_non_transparent_find(); test_set_non_transparent_equal_range(); } @@ -1514,6 +1517,7 @@ void test_unordered_multiset() typedef boost::unordered_multiset unordered_set; + test_set_non_transparent_find(); test_set_non_transparent_equal_range(); } }