Chris@16: ///////////////////////////////////////////////////////////////////////////// Chris@16: // Chris@16: // (C) Copyright Ion Gaztanaga 2007-2013 Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: // Chris@16: // See http://www.boost.org/libs/intrusive for documentation. Chris@16: // Chris@16: ///////////////////////////////////////////////////////////////////////////// Chris@16: Chris@16: #ifndef BOOST_INTRUSIVE_FWD_HPP Chris@16: #define BOOST_INTRUSIVE_FWD_HPP Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: /// @cond Chris@16: Chris@16: namespace boost { Chris@16: namespace intrusive { Chris@16: Chris@16: //////////////////////////// Chris@16: // Node algorithms Chris@16: //////////////////////////// Chris@16: Chris@16: //Algorithms predeclarations Chris@16: template Chris@16: class circular_list_algorithms; Chris@16: Chris@16: template Chris@16: class circular_slist_algorithms; Chris@16: Chris@16: template Chris@16: class rbtree_algorithms; Chris@16: Chris@16: //////////////////////////// Chris@16: // Containers Chris@16: //////////////////////////// Chris@16: Chris@16: //slist Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: , class O5 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class slist; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class slist_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class slist_member_hook; Chris@16: Chris@16: //list Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class list; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class list_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class list_member_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class list_hook; Chris@16: Chris@16: //rbtree/set/multiset Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class rbtree; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class multiset; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class set_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class set_member_hook; Chris@16: Chris@16: //splaytree/splay_set/splay_multiset Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class splaytree; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class splay_set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class splay_multiset; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class splay_set_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class splay_set_member_hook; Chris@16: Chris@16: //avltree/avl_set/avl_multiset Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class avltree; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class avl_set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class avl_multiset; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class avl_set_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class avl_set_member_hook; Chris@16: Chris@16: Chris@16: //treap/treap_set/treap_multiset Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class treap; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class treap_set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class treap_multiset; Chris@16: Chris@16: //Default priority comparison functor Chris@16: template Chris@16: struct priority_compare; Chris@16: Chris@16: //sgtree/sg_set/sg_multiset Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class sgtree; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class sg_set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class sg_multiset; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class bstree; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class bs_set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class bs_multiset; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class bs_set_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class bs_set_member_hook; Chris@16: Chris@16: //hashtable/unordered_set/unordered_multiset Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: , class O5 = void Chris@16: , class O6 = void Chris@16: , class O7 = void Chris@16: , class O8 = void Chris@16: , class O9 = void Chris@16: , class O10 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class hashtable; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: , class O5 = void Chris@16: , class O6 = void Chris@16: , class O7 = void Chris@16: , class O8 = void Chris@16: , class O9 = void Chris@16: , class O10 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class unordered_set; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class T Chris@16: , class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: , class O5 = void Chris@16: , class O6 = void Chris@16: , class O7 = void Chris@16: , class O8 = void Chris@16: , class O9 = void Chris@16: , class O10 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class unordered_multiset; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class unordered_set_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: , class O4 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class unordered_set_member_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class any_base_hook; Chris@16: Chris@16: #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES) Chris@16: template Chris@16: < class O1 = void Chris@16: , class O2 = void Chris@16: , class O3 = void Chris@16: > Chris@16: #else Chris@16: template Chris@16: #endif Chris@16: class any_member_hook; Chris@16: Chris@16: } //namespace intrusive { Chris@16: } //namespace boost { Chris@16: Chris@16: /// @endcond Chris@16: Chris@16: #endif //#ifndef BOOST_INTRUSIVE_FWD_HPP