#endif
typedef IntrusiveStripedSetHdrTest::base_item< splay_set_base_hook > base_item_type;
typedef IntrusiveStripedSetHdrTest::member_item< splay_set_member_hook > member_item_type;
+
+ template <typename T, typename Node>
+ 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::Refinable_splay_set_basehook()
{
typedef ci::StripedSet<
- bi::splay_set<base_item_type, bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type> > >
+ bi::splay_set<base_item_type
+ , bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type>>
+ CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( base_item_type )
+ >
,co::mutex_policy< ci::striped_set::refinable<> >
,co::hash< IntrusiveStripedSetHdrTest::hash_int >
,co::back_off< cds::backoff::empty >
void IntrusiveStripedSetHdrTest::Refinable_splay_set_basehook_bucket_threshold()
{
typedef ci::StripedSet<
- bi::splay_set<base_item_type, bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type> > >
+ bi::splay_set<base_item_type
+ , bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type>>
+ CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( base_item_type )
+ >
,co::mutex_policy< ci::striped_set::refinable<> >
,co::hash< IntrusiveStripedSetHdrTest::hash_int >
,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<64> >
void IntrusiveStripedSetHdrTest::Refinable_splay_set_basehook_bucket_threshold_rt()
{
typedef ci::StripedSet<
- bi::splay_set<base_item_type, bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type> > >
+ bi::splay_set<base_item_type
+ , bi::compare<IntrusiveStripedSetHdrTest::less<base_item_type>>
+ CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( base_item_type )
+ >
,co::mutex_policy< ci::striped_set::refinable<> >
,co::hash< IntrusiveStripedSetHdrTest::hash_int >
,co::resizing_policy< ci::striped_set::single_bucket_size_threshold<0> >
member_item_type
, bi::member_hook< member_item_type, splay_set_member_hook, &member_item_type::hMember>
, bi::compare<IntrusiveStripedSetHdrTest::less<member_item_type> >
+ CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( member_item_type )
>
,co::mutex_policy< ci::striped_set::refinable<> >
,co::hash< IntrusiveStripedSetHdrTest::hash_int >
member_item_type
, bi::member_hook< member_item_type, splay_set_member_hook, &member_item_type::hMember>
, bi::compare<IntrusiveStripedSetHdrTest::less<member_item_type> >
+ CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( member_item_type )
>
,co::mutex_policy< ci::striped_set::refinable<> >
,co::hash< IntrusiveStripedSetHdrTest::hash_int >
member_item_type
, bi::member_hook< member_item_type, splay_set_member_hook, &member_item_type::hMember>
, bi::compare<IntrusiveStripedSetHdrTest::less<member_item_type> >
+ CDS_BOOST_INTRUSIVE_KEY_OF_VALUE_OPTION( member_item_type )
>
,co::mutex_policy< ci::striped_set::refinable<> >
,co::hash< IntrusiveStripedSetHdrTest::hash_int >