//@endcond
protected:
- protected:
/// Forward iterator
/**
\p IsConst - constness boolean flag
/// Equality operator
template <bool C>
- bool operator ==(iterator_type<C> const& i )
+ bool operator ==(iterator_type<C> const& i ) const
{
return base_class::operator ==( i );
}
/// Equality operator
template <bool C>
- bool operator !=(iterator_type<C> const& i )
+ bool operator !=(iterator_type<C> const& i ) const
{
return !( *this == i );
}
+
+ /// Checks if the iterator is not equal to \p end()
+ explicit operator bool() const
+ {
+ return *this != iterator_type();
+ }
};
TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_cmp_pascal_stat)\
TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_less_xorshift)\
TEST_MAP_NOLF_EXTRACT(SkipListMap_hp_cmp_xorshift_stat)\
- TEST_MAP_NOLF_EXTRACT(SkipListMap_hrc_less_pascal)\
- TEST_MAP_NOLF_EXTRACT(SkipListMap_hrc_cmp_pascal_stat)\
- TEST_MAP_NOLF_EXTRACT(SkipListMap_hrc_less_xorshift)\
- TEST_MAP_NOLF_EXTRACT(SkipListMap_hrc_cmp_xorshift_stat)\
TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_less_pascal)\
TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_cmp_pascal_stat)\
TEST_MAP_NOLF_EXTRACT(SkipListMap_ptb_less_xorshift)\
CPPUNIT_TEST(SkipListMap_hp_cmp_pascal_stat)\
CPPUNIT_TEST(SkipListMap_hp_less_xorshift)\
CPPUNIT_TEST(SkipListMap_hp_cmp_xorshift_stat)\
- /*CPPUNIT_TEST(SkipListMap_hrc_less_pascal)*/\
- /*CPPUNIT_TEST(SkipListMap_hrc_cmp_pascal_stat)*/\
- /*CPPUNIT_TEST(SkipListMap_hrc_less_xorshift)*/\
- /*CPPUNIT_TEST(SkipListMap_hrc_cmp_xorshift_stat)*/\
CPPUNIT_TEST(SkipListMap_ptb_less_pascal)\
CPPUNIT_TEST(SkipListMap_ptb_cmp_pascal_stat)\
CPPUNIT_TEST(SkipListMap_ptb_less_xorshift)\
struct traits_MichaelSet_michaelAlloc :
public traits_MichaelMap_hash
{
- typedef cds::memory::MichaelAllocator<int> allocator;
+ typedef memory::MichaelAllocator<int> allocator;
};
typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_HP_cmp_michaelAlloc;
typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_DHP_cmp_michaelAlloc;
{};
typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_HP_cmp_michaelAlloc;
typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_DHP_cmp_michaelAlloc;
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_NOGC _cmp_michaelAlloc;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_NOGC_cmp_michaelAlloc;
typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_GPI_cmp_michaelAlloc;
typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_GPB_cmp_michaelAlloc;
typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_GPT_cmp_michaelAlloc;
TEST_CASE(SkipList_HP_max_stat) \
TEST_CASE(SkipList_HP_min) \
TEST_CASE(SkipList_HP_min_stat) \
- TEST_CASE(SkipList_HRC_max) \
- TEST_CASE(SkipList_HRC_min) \
TEST_CASE(SkipList_DHP_max) \
TEST_CASE(SkipList_DHP_min) \
TEST_CASE(SkipList_RCU_gpi_max) \
CPPUNIT_TEST(SkipList_HP_max_stat) \
CPPUNIT_TEST(SkipList_HP_min) \
CPPUNIT_TEST(SkipList_HP_min_stat) \
- /*CPPUNIT_TEST(SkipList_HRC_max)*/ \
- /*CPPUNIT_TEST(SkipList_HRC_min)*/ \
CPPUNIT_TEST(SkipList_DHP_max) \
CPPUNIT_TEST(SkipList_DHP_min) \
CPPUNIT_TEST(SkipList_RCU_gpi_max) \
>::type, false
> SkipList_HP_min_stat;
- typedef SkipListPQueue< cds::gc::HRC, Value,
- typename cc::skip_list::make_traits<
- cc::opt::less< std::less<Value> >
- >::type
- > SkipList_HRC_max;
-
- typedef SkipListPQueue< cds::gc::HRC, Value,
- typename cc::skip_list::make_traits<
- cc::opt::less< std::greater<Value> >
- >::type, false
- > SkipList_HRC_min;
typedef SkipListPQueue< cds::gc::DHP, Value,
typename cc::skip_list::make_traits<
struct traits_MichaelList_cmp_stdAlloc_seqcst : public traits_MichaelList_cmp_stdAlloc
{
- typedef co::v::sequential_consistent > memory_model;
+ typedef co::v::sequential_consistent memory_model;
};
typedef cc::MichaelList< cds::gc::HP, key_val, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_HP_cmp_stdAlloc_seqcst;
typedef cc::MichaelList< cds::gc::DHP, key_val, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_DHP_cmp_stdAlloc_seqcst;