764 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			764 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								/////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// (C) Copyright Ion Gaztanaga  2007-2013
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// 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)
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// See http://www.boost.org/libs/intrusive for documentation.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								/////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_INTRUSIVE_FWD_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_INTRUSIVE_FWD_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_CONFIG_HPP
							 | 
						||
| 
								 | 
							
								#  include <boost/config.hpp>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_CSTDINT_HPP
							 | 
						||
| 
								 | 
							
								#  include <boost/cstdint.hpp>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#if defined(BOOST_HAS_PRAGMA_ONCE)
							 | 
						||
| 
								 | 
							
								#  pragma once
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//! \file
							 | 
						||
| 
								 | 
							
								//! This header file forward declares most Intrusive classes.
							 | 
						||
| 
								 | 
							
								//!
							 | 
						||
| 
								 | 
							
								//! It forward declares the following containers and hooks:
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::slist / boost::intrusive::slist_base_hook / boost::intrusive::slist_member_hook
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::list / boost::intrusive::list_base_hook / boost::intrusive::list_member_hook
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::bstree / boost::intrusive::bs_set / boost::intrusive::bs_multiset /
							 | 
						||
| 
								 | 
							
								//!      boost::intrusive::bs_set_base_hook / boost::intrusive::bs_set_member_hook
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::rbtree / boost::intrusive::set / boost::intrusive::multiset /
							 | 
						||
| 
								 | 
							
								//!      boost::intrusive::set_base_hook / boost::intrusive::set_member_hook
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::avltree / boost::intrusive::avl_set / boost::intrusive::avl_multiset /
							 | 
						||
| 
								 | 
							
								//!      boost::intrusive::avl_set_base_hook / boost::intrusive::avl_set_member_hook
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::splaytree / boost::intrusive::splay_set / boost::intrusive::splay_multiset
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::sgtree / boost::intrusive::sg_set / boost::intrusive::sg_multiset
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::treap / boost::intrusive::treap_set / boost::intrusive::treap_multiset
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::hashtable / boost::intrusive::unordered_set / boost::intrusive::unordered_multiset /
							 | 
						||
| 
								 | 
							
								//!      boost::intrusive::unordered_set_base_hook / boost::intrusive::unordered_set_member_hook /
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::any_base_hook / boost::intrusive::any_member_hook
							 | 
						||
| 
								 | 
							
								//!
							 | 
						||
| 
								 | 
							
								//! It forward declares the following container or hook options:
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::constant_time_size / boost::intrusive::size_type / boost::intrusive::compare / boost::intrusive::equal
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::floating_point / boost::intrusive::priority / boost::intrusive::hash
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::value_traits / boost::intrusive::member_hook / boost::intrusive::function_hook / boost::intrusive::base_hook
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::void_pointer / boost::intrusive::tag / boost::intrusive::link_mode
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::optimize_size / boost::intrusive::linear / boost::intrusive::cache_last
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::bucket_traits / boost::intrusive::store_hash / boost::intrusive::optimize_multikey
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::power_2_buckets / boost::intrusive::cache_begin / boost::intrusive::compare_hash / boost::intrusive::incremental
							 | 
						||
| 
								 | 
							
								//!
							 | 
						||
| 
								 | 
							
								//! It forward declares the following value traits utilities:
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::value_traits / boost::intrusive::derivation_value_traits /
							 | 
						||
| 
								 | 
							
								//!      boost::intrusive::trivial_value_traits
							 | 
						||
| 
								 | 
							
								//!
							 | 
						||
| 
								 | 
							
								//! Finally it forward declares the following general purpose utilities:
							 | 
						||
| 
								 | 
							
								//!   - boost::intrusive::pointer_plus_bits / boost::intrusive::priority_compare.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <cstddef>
							 | 
						||
| 
								 | 
							
								#include <boost/intrusive/link_mode.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/intrusive/detail/workaround.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost {
							 | 
						||
| 
								 | 
							
								namespace intrusive {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
							 | 
						||
| 
								 | 
							
								#  ifdef BOOST_HAS_INTPTR_T
							 | 
						||
| 
								 | 
							
								      using ::boost::uintptr_t;
							 | 
						||
| 
								 | 
							
								#  else
							 | 
						||
| 
								 | 
							
								      typedef std::size_t uintptr_t;
							 | 
						||
| 
								 | 
							
								#  endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								////////////////////////////
							 | 
						||
| 
								 | 
							
								//     Node algorithms
							 | 
						||
| 
								 | 
							
								////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//Algorithms predeclarations
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class circular_list_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class circular_slist_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class linear_slist_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class bstree_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class rbtree_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class avltree_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class sgtree_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class splaytree_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits>
							 | 
						||
| 
								 | 
							
								class treap_algorithms;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								////////////////////////////
							 | 
						||
| 
								 | 
							
								//       Containers
							 | 
						||
| 
								 | 
							
								////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//slist
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class slist;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class slist_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class slist_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//list
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class list;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class list_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class list_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//rbtree/set/multiset
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class rbtree;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class set_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class set_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//splaytree/splay_set/splay_multiset
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class splaytree;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class splay_set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class splay_multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//avltree/avl_set/avl_multiset
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class avltree;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class avl_set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class avl_multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class avl_set_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class avl_set_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//treap/treap_set/treap_multiset
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class treap;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class treap_set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class treap_multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//sgtree/sg_set/sg_multiset
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class sgtree;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class sg_set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class sg_multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class bstree;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class bs_set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class bs_multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class bs_set_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class bs_set_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//hashtable/unordered_set/unordered_multiset
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   , class O7  = void
							 | 
						||
| 
								 | 
							
								   , class O8  = void
							 | 
						||
| 
								 | 
							
								   , class O9  = void
							 | 
						||
| 
								 | 
							
								   , class O10 = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class hashtable;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   , class O7  = void
							 | 
						||
| 
								 | 
							
								   , class O8  = void
							 | 
						||
| 
								 | 
							
								   , class O9  = void
							 | 
						||
| 
								 | 
							
								   , class O10 = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class unordered_set;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class T
							 | 
						||
| 
								 | 
							
								   , class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   , class O5  = void
							 | 
						||
| 
								 | 
							
								   , class O6  = void
							 | 
						||
| 
								 | 
							
								   , class O7  = void
							 | 
						||
| 
								 | 
							
								   , class O8  = void
							 | 
						||
| 
								 | 
							
								   , class O9  = void
							 | 
						||
| 
								 | 
							
								   , class O10 = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class T, class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class unordered_multiset;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class unordered_set_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   , class O4  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class unordered_set_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class any_base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
							 | 
						||
| 
								 | 
							
								template
							 | 
						||
| 
								 | 
							
								   < class O1  = void
							 | 
						||
| 
								 | 
							
								   , class O2  = void
							 | 
						||
| 
								 | 
							
								   , class O3  = void
							 | 
						||
| 
								 | 
							
								   >
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template<class ...Options>
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								class any_member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//Options
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct constant_time_size;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename SizeType>
							 | 
						||
| 
								 | 
							
								struct size_type;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Compare>
							 | 
						||
| 
								 | 
							
								struct compare;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct floating_point;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Equal>
							 | 
						||
| 
								 | 
							
								struct equal;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Priority>
							 | 
						||
| 
								 | 
							
								struct priority;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Hash>
							 | 
						||
| 
								 | 
							
								struct hash;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename ValueTraits> struct value_traits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template< typename Parent
							 | 
						||
| 
								 | 
							
								        , typename MemberHook
							 | 
						||
| 
								 | 
							
								        , MemberHook Parent::* PtrToMember>
							 | 
						||
| 
								 | 
							
								struct member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Functor>
							 | 
						||
| 
								 | 
							
								struct function_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename BaseHook>
							 | 
						||
| 
								 | 
							
								struct base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename VoidPointer>
							 | 
						||
| 
								 | 
							
								struct void_pointer;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Tag>
							 | 
						||
| 
								 | 
							
								struct tag;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<link_mode_type LinkType>
							 | 
						||
| 
								 | 
							
								struct link_mode;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled> struct
							 | 
						||
| 
								 | 
							
								optimize_size;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct linear;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct cache_last;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename BucketTraits>
							 | 
						||
| 
								 | 
							
								struct bucket_traits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct store_hash;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct optimize_multikey;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct power_2_buckets;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct cache_begin;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct compare_hash;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<bool Enabled>
							 | 
						||
| 
								 | 
							
								struct incremental;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//Value traits
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename ValueTraits>
							 | 
						||
| 
								 | 
							
								struct value_traits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template< typename Parent
							 | 
						||
| 
								 | 
							
								        , typename MemberHook
							 | 
						||
| 
								 | 
							
								        , MemberHook Parent::* PtrToMember>
							 | 
						||
| 
								 | 
							
								struct member_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template< typename Functor>
							 | 
						||
| 
								 | 
							
								struct function_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename BaseHook>
							 | 
						||
| 
								 | 
							
								struct base_hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class T, class NodeTraits, link_mode_type LinkMode = safe_link>
							 | 
						||
| 
								 | 
							
								struct derivation_value_traits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class NodeTraits, link_mode_type LinkMode = normal_link>
							 | 
						||
| 
								 | 
							
								struct trivial_value_traits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//Additional utilities
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename VoidPointer, std::size_t Alignment>
							 | 
						||
| 
								 | 
							
								struct max_pointer_plus_bits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<std::size_t Alignment>
							 | 
						||
| 
								 | 
							
								struct max_pointer_plus_bits<void *, Alignment>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Pointer, std::size_t NumBits>
							 | 
						||
| 
								 | 
							
								struct pointer_plus_bits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename T, std::size_t NumBits>
							 | 
						||
| 
								 | 
							
								struct pointer_plus_bits<T *, NumBits>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename Ptr>
							 | 
						||
| 
								 | 
							
								struct pointer_traits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<typename T>
							 | 
						||
| 
								 | 
							
								struct pointer_traits<T *>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}  //namespace intrusive {
							 | 
						||
| 
								 | 
							
								}  //namespace boost {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif   //#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif   //#ifndef BOOST_INTRUSIVE_FWD_HPP
							 |