--- /dev/null
+//$$CDS-header$$
+
+#include "ordered_list/hdr_intrusive_michael.h"
+#include <cds/intrusive/michael_list_dhp.h>
+
+namespace ordlist {
+ void IntrusiveMichaelListHeaderTest::PTB_base_cmp()
+ {
+ typedef base_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_base_less()
+ {
+ typedef base_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
+ ,co::less< less<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_base_cmpmix()
+ {
+ typedef base_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
+ ,co::less< less<item> >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_base_ic()
+ {
+ typedef base_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
+ ,co::less< less<item> >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_member_cmp()
+ {
+ typedef member_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::PTB>
+ > >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_member_less()
+ {
+ typedef member_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::PTB>
+ > >
+ ,co::less< less<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_member_cmpmix()
+ {
+ typedef member_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::PTB>
+ > >
+ ,co::less< less<item> >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveMichaelListHeaderTest::PTB_member_ic()
+ {
+ typedef member_int_item< cds::gc::PTB > item;
+ typedef ci::MichaelList< cds::gc::PTB
+ ,item
+ ,ci::michael_list::make_traits<
+ ci::opt::hook< ci::michael_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::PTB>
+ > >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ > list;
+ test_int<list>();
+ }
+
+} // namespace ordlist
+++ /dev/null
-//$$CDS-header$$
-
-#include "ordered_list/hdr_intrusive_michael.h"
-#include <cds/intrusive/michael_list_dhp.h>
-
-namespace ordlist {
- void IntrusiveMichaelListHeaderTest::PTB_base_cmp()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_base_less()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::less< less<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_base_cmpmix()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_base_ic()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_member_cmp()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_member_less()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::less< less<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_member_cmpmix()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveMichaelListHeaderTest::PTB_member_ic()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::MichaelList< cds::gc::PTB
- ,item
- ,ci::michael_list::make_traits<
- ci::opt::hook< ci::michael_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- > list;
- test_int<list>();
- }
-
-} // namespace ordlist
--- /dev/null
+//$$CDS-header$$
+
+#include "ordered_list/hdr_michael.h"
+#include <cds/container/michael_list_dhp.h>
+
+namespace ordlist {
+ namespace {
+ struct PTB_cmp_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
+ };
+ }
+ void MichaelListTestHeader::PTB_cmp()
+ {
+ // traits-based version
+ typedef cc::MichaelList< cds::gc::PTB, item, PTB_cmp_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelList< cds::gc::PTB, item,
+ cc::michael_list::make_traits<
+ cc::opt::compare< cmp<item> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct PTB_less_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
+ };
+ }
+ void MichaelListTestHeader::PTB_less()
+ {
+ // traits-based version
+ typedef cc::MichaelList< cds::gc::PTB, item, PTB_less_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelList< cds::gc::PTB, item,
+ cc::michael_list::make_traits<
+ cc::opt::less< lt<item> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct PTB_cmpmix_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
+ typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
+ };
+ }
+ void MichaelListTestHeader::PTB_cmpmix()
+ {
+ // traits-based version
+ typedef cc::MichaelList< cds::gc::PTB, item, PTB_cmpmix_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelList< cds::gc::PTB, item,
+ cc::michael_list::make_traits<
+ cc::opt::compare< cmp<item> >
+ ,cc::opt::less< lt<item> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct PTB_ic_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
+ typedef cds::atomicity::item_counter item_counter;
+ };
+ }
+ void MichaelListTestHeader::PTB_ic()
+ {
+ // traits-based version
+ typedef cc::MichaelList< cds::gc::PTB, item, PTB_ic_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelList< cds::gc::PTB, item,
+ cc::michael_list::make_traits<
+ cc::opt::less< lt<item> >
+ ,cc::opt::item_counter< cds::atomicity::item_counter >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+} // namespace ordlist
+
--- /dev/null
+//$$CDS-header$$
+
+#include "ordered_list/hdr_michael_kv.h"
+#include <cds/container/michael_kvlist_dhp.h>
+
+namespace ordlist {
+ namespace {
+ struct PTB_cmp_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
+ };
+ }
+ void MichaelKVListTestHeader::PTB_cmp()
+ {
+ // traits-based version
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_cmp_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
+ cc::michael_list::make_traits<
+ cc::opt::compare< cmp<key_type> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct PTB_less_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
+ };
+ }
+ void MichaelKVListTestHeader::PTB_less()
+ {
+ // traits-based version
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_less_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
+ cc::michael_list::make_traits<
+ cc::opt::less< lt<key_type> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct PTB_cmpmix_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
+ typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
+ };
+ }
+ void MichaelKVListTestHeader::PTB_cmpmix()
+ {
+ // traits-based version
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_cmpmix_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
+ cc::michael_list::make_traits<
+ cc::opt::compare< cmp<key_type> >
+ ,cc::opt::less< lt<key_type> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct PTB_ic_traits: public cc::michael_list::type_traits
+ {
+ typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
+ typedef cds::atomicity::item_counter item_counter;
+ };
+ }
+ void MichaelKVListTestHeader::PTB_ic()
+ {
+ // traits-based version
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_ic_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
+ cc::michael_list::make_traits<
+ cc::opt::less< lt<key_type> >
+ ,cc::opt::item_counter< cds::atomicity::item_counter >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+} // namespace ordlist
+
+++ /dev/null
-//$$CDS-header$$
-
-#include "ordered_list/hdr_michael_kv.h"
-#include <cds/container/michael_kvlist_dhp.h>
-
-namespace ordlist {
- namespace {
- struct PTB_cmp_traits: public cc::michael_list::type_traits
- {
- typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
- };
- }
- void MichaelKVListTestHeader::PTB_cmp()
- {
- // traits-based version
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_cmp_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
- cc::michael_list::make_traits<
- cc::opt::compare< cmp<key_type> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_less_traits: public cc::michael_list::type_traits
- {
- typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
- };
- }
- void MichaelKVListTestHeader::PTB_less()
- {
- // traits-based version
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_less_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
- cc::michael_list::make_traits<
- cc::opt::less< lt<key_type> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_cmpmix_traits: public cc::michael_list::type_traits
- {
- typedef MichaelKVListTestHeader::cmp<MichaelKVListTestHeader::key_type> compare;
- typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
- };
- }
- void MichaelKVListTestHeader::PTB_cmpmix()
- {
- // traits-based version
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_cmpmix_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
- cc::michael_list::make_traits<
- cc::opt::compare< cmp<key_type> >
- ,cc::opt::less< lt<key_type> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_ic_traits: public cc::michael_list::type_traits
- {
- typedef MichaelKVListTestHeader::lt<MichaelKVListTestHeader::key_type> less;
- typedef cds::atomicity::item_counter item_counter;
- };
- }
- void MichaelKVListTestHeader::PTB_ic()
- {
- // traits-based version
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type, PTB_ic_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelKVList< cds::gc::PTB, key_type, value_type,
- cc::michael_list::make_traits<
- cc::opt::less< lt<key_type> >
- ,cc::opt::item_counter< cds::atomicity::item_counter >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
-} // namespace ordlist
-
+++ /dev/null
-//$$CDS-header$$
-
-#include "ordered_list/hdr_michael.h"
-#include <cds/container/michael_list_dhp.h>
-
-namespace ordlist {
- namespace {
- struct PTB_cmp_traits: public cc::michael_list::type_traits
- {
- typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
- };
- }
- void MichaelListTestHeader::PTB_cmp()
- {
- // traits-based version
- typedef cc::MichaelList< cds::gc::PTB, item, PTB_cmp_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelList< cds::gc::PTB, item,
- cc::michael_list::make_traits<
- cc::opt::compare< cmp<item> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_less_traits: public cc::michael_list::type_traits
- {
- typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
- };
- }
- void MichaelListTestHeader::PTB_less()
- {
- // traits-based version
- typedef cc::MichaelList< cds::gc::PTB, item, PTB_less_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelList< cds::gc::PTB, item,
- cc::michael_list::make_traits<
- cc::opt::less< lt<item> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_cmpmix_traits: public cc::michael_list::type_traits
- {
- typedef MichaelListTestHeader::cmp<MichaelListTestHeader::item> compare;
- typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
- };
- }
- void MichaelListTestHeader::PTB_cmpmix()
- {
- // traits-based version
- typedef cc::MichaelList< cds::gc::PTB, item, PTB_cmpmix_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelList< cds::gc::PTB, item,
- cc::michael_list::make_traits<
- cc::opt::compare< cmp<item> >
- ,cc::opt::less< lt<item> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_ic_traits: public cc::michael_list::type_traits
- {
- typedef MichaelListTestHeader::lt<MichaelListTestHeader::item> less;
- typedef cds::atomicity::item_counter item_counter;
- };
- }
- void MichaelListTestHeader::PTB_ic()
- {
- // traits-based version
- typedef cc::MichaelList< cds::gc::PTB, item, PTB_ic_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::MichaelList< cds::gc::PTB, item,
- cc::michael_list::make_traits<
- cc::opt::less< lt<item> >
- ,cc::opt::item_counter< cds::atomicity::item_counter >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
-} // namespace ordlist
-