Rename cds/intrusive/michael_list_impl.h to cds/intrusive/impl/michael_list.h
[libcds.git] / cds / container / michael_set_base.h
1 //$$CDS-header$$
2
3 #ifndef __CDS_CONTAINER_MICHAEL_SET_BASE_H
4 #define __CDS_CONTAINER_MICHAEL_SET_BASE_H
5
6 #include <cds/intrusive/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
15         /// Type traits for MichaelHashSet class (typedef for cds::intrusive::michael_set::type_traits)
16         typedef intrusive::michael_set::type_traits  type_traits;
17
18         /// Metafunction converting option list to traits struct
19         /**
20             This is a synonym for intrusive::michael_set::make_traits
21         */
22         template <typename... Options>
23         struct make_traits {
24             typedef typename intrusive::michael_set::make_traits<Options...>::type type  ;   ///< Result of metafunction
25         };
26
27         //@cond
28         namespace details {
29             using intrusive::michael_set::details::init_hash_bitmask;
30             using intrusive::michael_set::details::list_iterator_selector;
31             using intrusive::michael_set::details::iterator;
32         }
33         //@endcond
34     }
35
36     //@cond
37     // Forward declarations
38     template <class GC, class OrderedList, class Traits = michael_set::type_traits>
39     class MichaelHashSet;
40     //@endcond
41
42 }} // namespace cds::container
43
44 #endif // #ifndef __CDS_CONTAINER_MICHAEL_SET_BASE_H