summaryrefslogtreecommitdiff
path: root/boost/intrusive/intrusive_fwd.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/intrusive/intrusive_fwd.hpp')
-rw-r--r--boost/intrusive/intrusive_fwd.hpp647
1 files changed, 417 insertions, 230 deletions
diff --git a/boost/intrusive/intrusive_fwd.hpp b/boost/intrusive/intrusive_fwd.hpp
index c95767ef35..a4498161a1 100644
--- a/boost/intrusive/intrusive_fwd.hpp
+++ b/boost/intrusive/intrusive_fwd.hpp
@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztanaga 2007-2012
+// (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
@@ -13,21 +13,51 @@
#ifndef BOOST_INTRUSIVE_FWD_HPP
#define BOOST_INTRUSIVE_FWD_HPP
+#if defined(_MSC_VER)
+# 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>
-/// @cond
-
-namespace boost {
-
-namespace intrusive {
-
-struct none;
-
-} //namespace intrusive{
-} //namespace boost{
-
namespace boost {
namespace intrusive {
@@ -43,43 +73,62 @@ 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
- , class O5 = none
+ , 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
>
#else
template<class ...Options>
#endif
class slist_base_hook;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
>
#else
template<class ...Options>
@@ -87,109 +136,102 @@ template<class ...Options>
class slist_member_hook;
//list
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
+ , 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
>
#else
template<class ...Options>
#endif
class list_base_hook;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
>
#else
template<class ...Options>
#endif
class list_member_hook;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
-template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- >
-#else
-template<class ...Options>
-#endif
-class list_hook;
-
//rbtree/set/multiset
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class rbtree;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class set;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class multiset;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ < 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
>
#else
template<class ...Options>
@@ -197,125 +239,109 @@ template<class ...Options>
class set_member_hook;
//splaytree/splay_set/splay_multiset
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class splaytree;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class splay_set;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class splay_multiset;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
-template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- >
-#else
-template<class ...Options>
-#endif
-class splay_set_base_hook;
-
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
-template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- >
-#else
-template<class ...Options>
-#endif
-class splay_set_member_hook;
-
//avltree/avl_set/avl_multiset
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class avltree;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class avl_set;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class avl_multiset;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ < 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
>
#else
template<class ...Options>
@@ -324,105 +350,149 @@ class avl_set_member_hook;
//treap/treap_set/treap_multiset
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class treap;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class treap_set;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class treap_multiset;
-//Default priority comparison functor
-template <class T>
-struct priority_compare;
-
//sgtree/sg_set/sg_multiset
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class sgtree;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class sg_set;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
>
#else
template<class T, class ...Options>
#endif
class sg_multiset;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+template
+ < class T
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = void
+ >
+#else
+template<class T, class ...Options>
+#endif
+class bstree;
+
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class T
+ , class O1 = void
+ , class O2 = void
+ , class O3 = void
+ , class O4 = void
+ , class O5 = 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
+ >
+#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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
>
#else
template<class ...Options>
@@ -431,112 +501,229 @@ class bs_set_member_hook;
//hashtable/unordered_set/unordered_multiset
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
- , class O5 = none
- , class O6 = none
- , class O7 = none
- , class O8 = none
- , class O9 = none
- , class O10 = none
+ , 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
- , class O5 = none
- , class O6 = none
- , class O7 = none
- , class O8 = none
- , class O9 = none
- , class O10 = none
+ , 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
< class T
- , class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
- , class O5 = none
- , class O6 = none
- , class O7 = none
- , class O8 = none
- , class O9 = none
- , class O10 = none
+ , 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ < 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
- , class O4 = none
+ < 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_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < class O1 = void
+ , class O2 = void
+ , class O3 = void
>
#else
template<class ...Options>
#endif
class any_base_hook;
-#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
+#if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
template
- < class O1 = none
- , class O2 = none
- , class O3 = none
+ < 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 {
-/// @endcond
+#endif //#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
#endif //#ifndef BOOST_INTRUSIVE_FWD_HPP