Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:01:55

0001 
0002 // Copyright (C) 2005-2016 Daniel James
0003 // Copyright (C) 2022 Christian Mazakas
0004 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0005 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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 }