struct set_type< cds::intrusive::cuckoo::implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
- using base_class::hash2;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::compare compare;
+ typedef typename base_class::equal_to equal_to;
+ typedef typename base_class::less less;
+ typedef typename base_class::hash hash;
+ typedef typename base_class::hash2 hash2;
// ***************************************************************************
// CuckooSet
struct set_type< cc::ellen_bintree::implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
+ typedef typename base_class::key_type key_type;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::compare compare;
+ typedef typename base_class::less less;
+ typedef typename base_class::key_less key_less;
struct ellen_bintree_props {
struct key_extractor {
struct set_type< cc::michael_set::implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::compare compare;
+ typedef typename base_class::less less;
+ typedef typename base_class::hash hash;
// ***************************************************************************
// MichaelHashSet based on MichaelList
struct set_type< cc::skip_list::implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::compare compare;
+ typedef typename base_class::less less;
+ typedef typename base_class::hash hash;
class traits_SkipListSet_less_pascal: public cc::skip_list::make_traits <
co::less< less >
struct set_type< cc::split_list::implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::compare compare;
+ typedef typename base_class::less less;
+ typedef typename base_class::hash hash;
// ***************************************************************************
// SplitListSet based on MichaelList
struct set_type< std_implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::less less;
+ typedef typename base_class::hash hash;
+ typedef typename base_class::equal_to equal_to;
typedef StdSet< key_val, less, cds::sync::spin > StdSet_Spin;
typedef StdSet< key_val, less, lock::NoLock> StdSet_NoLock;
struct set_type< cc::striped_set::implementation_tag, Key, Val >: public set_type_base< Key, Val >
{
typedef set_type_base< Key, Val > base_class;
- using base_class::key_val;
- using base_class::compare;
- using base_class::less;
- using base_class::hash;
+ typedef typename base_class::key_val key_val;
+ typedef typename base_class::compare compare;
+ typedef typename base_class::less less;
+ typedef typename base_class::equal_to equal_to;
+ typedef typename base_class::hash hash;
+ typedef typename base_class::hash2 hash2;
// ***************************************************************************