76 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | 
 | ||
|  | // Copyright (C) 2005-2016 Daniel James | ||
|  | // Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
|  | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|  | 
 | ||
|  | #include <boost/unordered/unordered_set_fwd.hpp> | ||
|  | #include <boost/unordered/detail/equivalent.hpp> | ||
|  | #include <boost/unordered/detail/unique.hpp> | ||
|  | 
 | ||
|  | namespace boost { namespace unordered { namespace detail { | ||
|  |     template <typename A, typename T, typename H, typename P> | ||
|  |     struct set | ||
|  |     { | ||
|  |         typedef boost::unordered::detail::set<A, T, H, P> types; | ||
|  | 
 | ||
|  |         typedef A allocator; | ||
|  |         typedef T value_type; | ||
|  |         typedef H hasher; | ||
|  |         typedef P key_equal; | ||
|  |         typedef T key_type; | ||
|  | 
 | ||
|  |         typedef boost::unordered::detail::allocator_traits<allocator> traits; | ||
|  |         typedef boost::unordered::detail::pick_node<allocator, value_type> pick; | ||
|  |         typedef typename pick::node node; | ||
|  |         typedef typename pick::bucket bucket; | ||
|  |         typedef typename pick::link_pointer link_pointer; | ||
|  | 
 | ||
|  |         typedef boost::unordered::detail::table_impl<types> table; | ||
|  |         typedef boost::unordered::detail::set_extractor<value_type> extractor; | ||
|  | 
 | ||
|  |         typedef typename boost::unordered::detail::pick_policy<T>::type policy; | ||
|  | 
 | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             c_iterator<node> iterator; | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             c_iterator<node> c_iterator; | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             cl_iterator<node, policy> l_iterator; | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             cl_iterator<node, policy> cl_iterator; | ||
|  |     }; | ||
|  | 
 | ||
|  |     template <typename A, typename T, typename H, typename P> | ||
|  |     struct multiset | ||
|  |     { | ||
|  |         typedef boost::unordered::detail::multiset<A, T, H, P> types; | ||
|  | 
 | ||
|  |         typedef A allocator; | ||
|  |         typedef T value_type; | ||
|  |         typedef H hasher; | ||
|  |         typedef P key_equal; | ||
|  |         typedef T key_type; | ||
|  | 
 | ||
|  |         typedef boost::unordered::detail::allocator_traits<allocator> traits; | ||
|  |         typedef boost::unordered::detail::pick_grouped_node<allocator, | ||
|  |             value_type> pick; | ||
|  |         typedef typename pick::node node; | ||
|  |         typedef typename pick::bucket bucket; | ||
|  |         typedef typename pick::link_pointer link_pointer; | ||
|  | 
 | ||
|  |         typedef boost::unordered::detail::grouped_table_impl<types> table; | ||
|  |         typedef boost::unordered::detail::set_extractor<value_type> extractor; | ||
|  | 
 | ||
|  |         typedef typename boost::unordered::detail::pick_policy<T>::type policy; | ||
|  | 
 | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             c_iterator<node> iterator; | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             c_iterator<node> c_iterator; | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             cl_iterator<node, policy> l_iterator; | ||
|  |         typedef boost::unordered::iterator_detail:: | ||
|  |             cl_iterator<node, policy> cl_iterator; | ||
|  |     }; | ||
|  | }}} |