File indexing completed on 2025-01-30 10:01:55
0001
0002
0003
0004
0005
0006
0007 #include <boost/unordered/detail/implementation.hpp>
0008 #include <boost/unordered/unordered_set_fwd.hpp>
0009
0010 namespace boost {
0011 namespace unordered {
0012 namespace detail {
0013 template <typename A, typename T, typename H, typename P> struct set
0014 {
0015 typedef boost::unordered::detail::set<A, T, H, P> types;
0016
0017 typedef T value_type;
0018 typedef H hasher;
0019 typedef P key_equal;
0020 typedef T const const_key_type;
0021
0022 typedef
0023 typename ::boost::unordered::detail::rebind_wrap<A, value_type>::type
0024 value_allocator;
0025 typedef boost::unordered::detail::allocator_traits<value_allocator>
0026 value_allocator_traits;
0027
0028 typedef boost::unordered::detail::table<types> table;
0029 typedef boost::unordered::detail::set_extractor<value_type> extractor;
0030
0031 typedef typename boost::allocator_void_pointer<value_allocator>::type
0032 void_pointer;
0033
0034 typedef boost::unordered::node_handle_set<
0035 node<value_type, void_pointer>, T, A>
0036 node_type;
0037
0038 typedef typename table::c_iterator iterator;
0039 typedef boost::unordered::insert_return_type_set<iterator, node_type>
0040 insert_return_type;
0041 };
0042
0043 template <typename T, typename H, typename P, typename A>
0044 class instantiate_set
0045 {
0046 typedef boost::unordered_set<T, H, P, A> container;
0047 container x;
0048 typename container::node_type node_type;
0049 typename container::insert_return_type insert_return_type;
0050 };
0051
0052 template <typename T, typename H, typename P, typename A>
0053 class instantiate_multiset
0054 {
0055 typedef boost::unordered_multiset<T, H, P, A> container;
0056 container x;
0057 typename container::node_type node_type;
0058 };
0059 }
0060 }
0061 }