Merge branch 'integration' into dev
[libcds.git] / cds / container / details / michael_set_base.h
1 //$$CDS-header$$
2
3 #ifndef CDSLIB_CONTAINER_DETAILS_MICHAEL_SET_BASE_H
4 #define CDSLIB_CONTAINER_DETAILS_MICHAEL_SET_BASE_H
5
6 #include <cds/intrusive/details/michael_set_base.h>
7
8 namespace cds { namespace container {
9
10     /// MichaelHashSet related definitions
11     /** @ingroup cds_nonintrusive_helper
12     */
13     namespace michael_set {
14         using cds::intrusive::michael_set::implementation_tag;
15
16         /// MichaelHashSet traits
17         typedef cds::intrusive::michael_set::traits  traits;
18
19         /// Metafunction converting option list to \p michael_set::traits
20         template <typename... Options>
21         using make_traits = cds::intrusive::michael_set::make_traits< Options... >;
22
23         //@cond
24         namespace details {
25             using cds::intrusive::michael_set::details::init_hash_bitmask;
26             using cds::intrusive::michael_set::details::list_iterator_selector;
27             using cds::intrusive::michael_set::details::iterator;
28         }
29         //@endcond
30     }
31
32     //@cond
33     // Forward declarations
34     template <class GC, class OrderedList, class Traits = michael_set::traits>
35     class MichaelHashSet;
36     //@endcond
37
38 }} // namespace cds::container
39
40 #endif // #ifndef CDSLIB_CONTAINER_DETAILS_MICHAEL_SET_BASE_H