]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/unordered/include/boost/unordered/detail/map.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / unordered / include / boost / unordered / detail / map.hpp
1
2 // Copyright (C) 2005-2016 Daniel James
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6 #include <boost/unordered/unordered_map_fwd.hpp>
7 #include <boost/unordered/detail/equivalent.hpp>
8 #include <boost/unordered/detail/unique.hpp>
9
10 namespace boost { namespace unordered { namespace detail {
11 template <typename A, typename K, typename M, typename H, typename P>
12 struct map
13 {
14 typedef boost::unordered::detail::map<A, K, M, H, P> types;
15
16 typedef A allocator;
17 typedef std::pair<K const, M> value_type;
18 typedef H hasher;
19 typedef P key_equal;
20 typedef K key_type;
21
22 typedef boost::unordered::detail::allocator_traits<allocator>
23 traits;
24 typedef boost::unordered::detail::pick_node<allocator, value_type> pick;
25 typedef typename pick::node node;
26 typedef typename pick::bucket bucket;
27 typedef typename pick::link_pointer link_pointer;
28
29 typedef boost::unordered::detail::table_impl<types> table;
30 typedef boost::unordered::detail::map_extractor<key_type, value_type>
31 extractor;
32
33 typedef typename boost::unordered::detail::pick_policy<K>::type policy;
34
35 typedef boost::unordered::iterator_detail::
36 iterator<node> iterator;
37 typedef boost::unordered::iterator_detail::
38 c_iterator<node> c_iterator;
39 typedef boost::unordered::iterator_detail::
40 l_iterator<node, policy> l_iterator;
41 typedef boost::unordered::iterator_detail::
42 cl_iterator<node, policy> cl_iterator;
43 };
44
45 template <typename A, typename K, typename M, typename H, typename P>
46 struct multimap
47 {
48 typedef boost::unordered::detail::multimap<A, K, M, H, P> types;
49
50 typedef A allocator;
51 typedef std::pair<K const, M> value_type;
52 typedef H hasher;
53 typedef P key_equal;
54 typedef K key_type;
55
56 typedef boost::unordered::detail::allocator_traits<allocator> traits;
57 typedef boost::unordered::detail::pick_grouped_node<allocator,
58 value_type> pick;
59 typedef typename pick::node node;
60 typedef typename pick::bucket bucket;
61 typedef typename pick::link_pointer link_pointer;
62
63 typedef boost::unordered::detail::grouped_table_impl<types> table;
64 typedef boost::unordered::detail::map_extractor<key_type, value_type>
65 extractor;
66
67 typedef typename boost::unordered::detail::pick_policy<K>::type policy;
68
69 typedef boost::unordered::iterator_detail::
70 iterator<node> iterator;
71 typedef boost::unordered::iterator_detail::
72 c_iterator<node> c_iterator;
73 typedef boost::unordered::iterator_detail::
74 l_iterator<node, policy> l_iterator;
75 typedef boost::unordered::iterator_detail::
76 cl_iterator<node, policy> cl_iterator;
77 };
78
79 }}}