X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=test%2Fstress%2Fset%2Fset_type_feldman_hashset.h;h=a0e3527cc7d8b8cf4890a3f2be861474ee3f6fd8;hp=44c3ddf4c806bdb4c569387295b3c2c7c0402ade;hb=1011e89e24d83d53642754691fade33ce8ca5c29;hpb=2402fb1beb25ec532cea91c8dfbb9425eb5bdf48 diff --git a/test/stress/set/set_type_feldman_hashset.h b/test/stress/set/set_type_feldman_hashset.h index 44c3ddf4..a0e3527c 100644 --- 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::extracted_ptr extracted_ptr; + template + struct rebind_traits { + typedef FeldmanHashSet result; + }; + template 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; - /*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 - /*explicit*/ key_val(K const& k) : base_class(k) {} + explicit key_val(K const& k) : base_class(k) {} template key_val(K const& k, T const& v) : base_class(k, v) {} @@ -267,17 +272,34 @@ namespace set { { 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 { - key_type operator()(key_val const& kv) + key_type const& operator()( key_val const& kv ) const { return kv.key; } + + key_type const& operator()( key_type const& k ) const + { + return k; + } }; + + typedef set::cmp compare; }; struct traits_stat : public traits