projects
/
libcds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed: set_DelOdd and map_DelOdd tests for FeldmanHashSet/Map now use correct compare...
[libcds.git]
/
test
/
stress
/
set
/
set_type_feldman_hashset.h
diff --git
a/test/stress/set/set_type_feldman_hashset.h
b/test/stress/set/set_type_feldman_hashset.h
index 44c3ddf4c806bdb4c569387295b3c2c7c0402ade..a0e3527cc7d8b8cf4890a3f2be861474ee3f6fd8 100644
(file)
--- a/
test/stress/set/set_type_feldman_hashset.h
+++ b/
test/stress/set/set_type_feldman_hashset.h
@@
-63,6
+63,11
@@
namespace set {
typedef typename T::hasher hasher;
typedef typename get_extracted_ptr<GC>::extracted_ptr extracted_ptr;
typedef typename T::hasher hasher;
typedef typename get_extracted_ptr<GC>::extracted_ptr extracted_ptr;
+ template <typename OtherTraits>
+ struct rebind_traits {
+ typedef FeldmanHashSet<GC, T, OtherTraits > result;
+ };
+
template <class Config>
FeldmanHashSet( Config const& cfg )
: base_class( cfg.s_nFeldmanSet_HeadBits, cfg.s_nFeldmanSet_ArrayBits )
template <class Config>
FeldmanHashSet( Config const& cfg )
: base_class( cfg.s_nFeldmanSet_HeadBits, cfg.s_nFeldmanSet_ArrayBits )
@@
-251,11
+256,11
@@
namespace set {
{
typedef typename set_type_base< Key, Val >::key_val base_class;
{
typedef typename set_type_base< Key, Val >::key_val base_class;
-
/*explicit*/
key_val(key_type const& k) : base_class(k) {}
+
explicit
key_val(key_type const& k) : base_class(k) {}
key_val(key_type const& k, value_type const& v) : base_class(k, v) {}
template <typename K>
key_val(key_type const& k, value_type const& v) : base_class(k, v) {}
template <typename K>
-
/*explicit*/
key_val(K const& k) : base_class(k) {}
+
explicit
key_val(K const& k) : base_class(k) {}
template <typename K, typename T>
key_val(K const& k, T const& v) : base_class(k, v) {}
template <typename K, typename T>
key_val(K const& k, T const& v) : base_class(k, v) {}
@@
-267,17
+272,34
@@
namespace set {
{
return key_type( k );
}
{
return key_type( k );
}
+
+ key_type const& operator()( key_val const& kv ) const
+ {
+ return kv.key;
+ }
+
+ key_type const& operator()( key_type const& k ) const
+ {
+ return k;
+ }
};
};
struct traits : public cc::feldman_hashset::traits
{
struct hash_accessor {
};
};
struct traits : public cc::feldman_hashset::traits
{
struct hash_accessor {
- key_type
operator()(key_val const& kv)
+ key_type
const& operator()( key_val const& kv ) const
{
return kv.key;
}
{
return kv.key;
}
+
+ key_type const& operator()( key_type const& k ) const
+ {
+ return k;
+ }
};
};
+
+ typedef set::cmp<Key> compare;
};
struct traits_stat : public traits
};
struct traits_stat : public traits