forked from boostorg/unordered
Merge pull request #72 from cmazakas/multiset-heterogeneous-count
Multiset Heterogeneous `count()`
This commit is contained in:
@ -1092,6 +1092,18 @@ namespace boost {
|
|||||||
|
|
||||||
size_type count(const key_type&) const;
|
size_type count(const key_type&) const;
|
||||||
|
|
||||||
|
template <class Key>
|
||||||
|
typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
|
||||||
|
size_type>::type
|
||||||
|
count(const Key& k) const
|
||||||
|
{
|
||||||
|
node_pointer n = table_.find_node_impl(
|
||||||
|
table::policy::apply_hash(this->hash_function(), k), k,
|
||||||
|
this->key_eq());
|
||||||
|
|
||||||
|
return n ? table_.group_count(n) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
std::pair<const_iterator, const_iterator> equal_range(
|
std::pair<const_iterator, const_iterator> equal_range(
|
||||||
const key_type&) const;
|
const key_type&) const;
|
||||||
|
|
||||||
|
@ -1605,6 +1605,7 @@ void test_unordered_multiset()
|
|||||||
transparent_key_equal>
|
transparent_key_equal>
|
||||||
unordered_set;
|
unordered_set;
|
||||||
|
|
||||||
|
test_set_transparent_count<unordered_set>();
|
||||||
test_set_transparent_find<unordered_set>();
|
test_set_transparent_find<unordered_set>();
|
||||||
test_set_transparent_erase<unordered_set>();
|
test_set_transparent_erase<unordered_set>();
|
||||||
test_set_transparent_equal_range<unordered_set>();
|
test_set_transparent_equal_range<unordered_set>();
|
||||||
@ -1615,6 +1616,7 @@ void test_unordered_multiset()
|
|||||||
//
|
//
|
||||||
typedef boost::unordered_multiset<key, hasher, key_equal> unordered_set;
|
typedef boost::unordered_multiset<key, hasher, key_equal> unordered_set;
|
||||||
|
|
||||||
|
test_set_non_transparent_count<unordered_set>();
|
||||||
test_set_non_transparent_find<unordered_set>();
|
test_set_non_transparent_find<unordered_set>();
|
||||||
test_set_non_transparent_erase<unordered_set>();
|
test_set_non_transparent_erase<unordered_set>();
|
||||||
test_set_non_transparent_equal_range<unordered_set>();
|
test_set_non_transparent_equal_range<unordered_set>();
|
||||||
@ -1626,6 +1628,7 @@ void test_unordered_multiset()
|
|||||||
typedef boost::unordered_multiset<key, transparent_hasher, key_equal>
|
typedef boost::unordered_multiset<key, transparent_hasher, key_equal>
|
||||||
unordered_set;
|
unordered_set;
|
||||||
|
|
||||||
|
test_set_non_transparent_count<unordered_set>();
|
||||||
test_set_non_transparent_find<unordered_set>();
|
test_set_non_transparent_find<unordered_set>();
|
||||||
test_set_non_transparent_erase<unordered_set>();
|
test_set_non_transparent_erase<unordered_set>();
|
||||||
test_set_non_transparent_equal_range<unordered_set>();
|
test_set_non_transparent_equal_range<unordered_set>();
|
||||||
@ -1637,6 +1640,7 @@ void test_unordered_multiset()
|
|||||||
typedef boost::unordered_multiset<key, hasher, transparent_key_equal>
|
typedef boost::unordered_multiset<key, hasher, transparent_key_equal>
|
||||||
unordered_set;
|
unordered_set;
|
||||||
|
|
||||||
|
test_set_non_transparent_count<unordered_set>();
|
||||||
test_set_non_transparent_find<unordered_set>();
|
test_set_non_transparent_find<unordered_set>();
|
||||||
test_set_non_transparent_erase<unordered_set>();
|
test_set_non_transparent_erase<unordered_set>();
|
||||||
test_set_non_transparent_equal_range<unordered_set>();
|
test_set_non_transparent_equal_range<unordered_set>();
|
||||||
|
Reference in New Issue
Block a user