8cfce03453107dcb0d4ba8b3f65d812922198ab2
[libcds.git] / tests / unit / map2 / map_type_std.h
1 //$$CDS-header$$
2
3 #ifndef CDSUNIT_MAP_TYPE_STD_H
4 #define CDSUNIT_MAP_TYPE_STD_H
5
6 #include "map2/map_type.h"
7
8 #include "map2/std_map.h"
9 #include "map2/std_hash_map.h"
10
11 #include "lock/nolock.h"
12
13 namespace map2 {
14
15     struct tag_StdMap;
16
17     template <typename Key, typename Value>
18     struct map_type< tag_StdMap, Key, Value >: public map_type_base< Key, Value >
19     {
20         typedef map_type_base< Key, Value > base_class;
21         typedef typename base_class::compare    compare;
22         typedef typename base_class::less       less;
23
24         typedef StdMap< Key, Value, cds::sync::spin >   StdMap_Spin;
25         typedef StdMap< Key, Value, std::mutex >        StdMap_Mutex;
26         typedef StdMap< Key, Value, lock::NoLock>       StdMap_NoLock;
27
28         typedef StdHashMap< Key, Value, cds::sync::spin > StdHashMap_Spin;
29         typedef StdHashMap< Key, Value, std::mutex >      StdHashMap_Mutex;
30         typedef StdHashMap< Key, Value, lock::NoLock >    StdHashMap_NoLock;
31     };
32 }   // namespace map2
33
34 #endif // ifndef CDSUNIT_MAP_TYPE_STD_H