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