X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tests%2Ftest-hdr%2Fset%2Fhdr_intrusive_striped_hashset_set.cpp;h=ac29ba1c80a120ce4bb5285bdccd7e6c698c2301;hb=85ba9b5ae91af679c4442f3b425da04ed3e6cc9d;hp=c97a89ca8251779f9132992981fa4bd8b7334e48;hpb=aa9a9b433704a5db08b40028bff4ae40ad3c4962;p=libcds.git diff --git a/tests/test-hdr/set/hdr_intrusive_striped_hashset_set.cpp b/tests/test-hdr/set/hdr_intrusive_striped_hashset_set.cpp index c97a89ca..ac29ba1c 100644 --- a/tests/test-hdr/set/hdr_intrusive_striped_hashset_set.cpp +++ b/tests/test-hdr/set/hdr_intrusive_striped_hashset_set.cpp @@ -10,12 +10,33 @@ namespace set { namespace { typedef IntrusiveStripedSetHdrTest::base_item< bi::set_base_hook<> > base_item_type; typedef IntrusiveStripedSetHdrTest::member_item< bi::set_member_hook<> > member_item_type; + + template + struct get_key + { + typedef T type; + + type const& operator()( Node const& v ) const + { + return v.nKey; + } + }; } +#if BOOST_VERSION >= 105900 +# define CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( type ) ,bi::key_of_value< get_key< int, type>> +#else +# define CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( type ) +#endif + + void IntrusiveStripedSetHdrTest::Striped_set_basehook() { typedef ci::StripedSet< - bi::set > > + bi::set> + CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( base_item_type ) + > ,co::mutex_policy< ci::striped_set::striping<> > ,co::hash< IntrusiveStripedSetHdrTest::hash_int > > set_type; @@ -26,7 +47,10 @@ namespace set { void IntrusiveStripedSetHdrTest::Striped_set_basehook_bucket_threshold() { typedef ci::StripedSet< - bi::set > > + bi::set> + CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( base_item_type ) + > ,co::hash< IntrusiveStripedSetHdrTest::hash_int > ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<64> > > set_type; @@ -37,7 +61,10 @@ namespace set { void IntrusiveStripedSetHdrTest::Striped_set_basehook_bucket_threshold_rt() { typedef ci::StripedSet< - bi::set > > + bi::set> + CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( base_item_type ) + > ,co::hash< IntrusiveStripedSetHdrTest::hash_int > ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<0> > > set_type; @@ -53,6 +80,7 @@ namespace set { member_item_type , bi::member_hook< member_item_type, bi::set_member_hook<>, &member_item_type::hMember> , bi::compare > + CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( member_item_type ) > ,co::hash< IntrusiveStripedSetHdrTest::hash_int > > set_type; @@ -67,6 +95,7 @@ namespace set { member_item_type , bi::member_hook< member_item_type, bi::set_member_hook<>, &member_item_type::hMember> , bi::compare > + CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( member_item_type ) > ,co::hash< IntrusiveStripedSetHdrTest::hash_int > ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<256> > @@ -82,6 +111,7 @@ namespace set { member_item_type , bi::member_hook< member_item_type, bi::set_member_hook<>, &member_item_type::hMember> , bi::compare > + CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( member_item_type ) > ,co::hash< IntrusiveStripedSetHdrTest::hash_int > ,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<0> >