//$$CDS-header$$
-#ifndef __CDS_INTRUSIVE_MICHAEL_SET_NOGC_H
-#define __CDS_INTRUSIVE_MICHAEL_SET_NOGC_H
+#ifndef CDSLIB_INTRUSIVE_MICHAEL_SET_NOGC_H
+#define CDSLIB_INTRUSIVE_MICHAEL_SET_NOGC_H
#include <cds/intrusive/details/michael_set_base.h>
#include <cds/gc/nogc.h>
static_assert( std::is_same<gc, typename bucket_type::gc>::value, "GC and OrderedList::gc must be the same");
// atomicity::empty_item_counter is not allowed as a item counter
- static_assert( !std::is_same<item_counter, atomicity::empty_item_counter>::value,
+ static_assert( !std::is_same<item_counter, atomicity::empty_item_counter>::value,
"atomicity::empty_item_counter is not allowed as a item counter");
m_Buckets = bucket_table_allocator().NewArray( bucket_count() );
{
return bucket( key ).find( key, f );
}
+ //@cond
+ template <typename Q, typename Func>
+ bool find( Q const& key, Func f )
+ {
+ return bucket( key ).find( key, f );
+ }
+ //@endcond
/// Finds the key \p key using \p pred predicate for searching
/**
{
return bucket( key ).find_with( key, pred, f );
}
+ //@cond
+ template <typename Q, typename Less, typename Func>
+ bool find_with( Q const& key, Less pred, Func f )
+ {
+ return bucket( key ).find_with( key, pred, f );
+ }
+ //@endcond
/// Clears the set (non-atomic)
/**
}} // namespace cds::intrusive
-#endif // #ifndef __CDS_INTRUSIVE_MICHAEL_SET_NOGC_H
+#endif // #ifndef CDSLIB_INTRUSIVE_MICHAEL_SET_NOGC_H