1 /////////////////////////////////////////////////////////////////////////////
3 // (C) Copyright Ion Gaztanaga 2007-2008
5 // Distributed under the Boost Software License, Version 1.0.
6 // (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 // See http://www.boost.org/libs/intrusive for documentation.
11 /////////////////////////////////////////////////////////////////////////////
13 #ifndef BOOST_INTRUSIVE_FWD_HPP
14 #define BOOST_INTRUSIVE_FWD_HPP
17 #include <boost/intrusive/link_mode.hpp>
18 #include <boost/intrusive/detail/workaround.hpp>
28 } //namespace intrusive{
34 ////////////////////////////
36 ////////////////////////////
38 //Algorithms predeclarations
39 template<class NodeTraits
>
40 class circular_list_algorithms
;
42 template<class NodeTraits
>
43 class circular_slist_algorithms
;
45 template<class NodeTraits
>
46 class rbtree_algorithms
;
48 ////////////////////////////
50 ////////////////////////////
53 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
63 template<class T
, class ...Options
>
67 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
74 template<class ...Options
>
76 class slist_base_hook
;
78 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
85 template<class ...Options
>
87 class slist_member_hook
;
90 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
98 template<class T
, class ...Options
>
102 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
109 template<class ...Options
>
111 class list_base_hook
;
113 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
120 template<class ...Options
>
122 class list_member_hook
;
124 //rbtree/set/multiset
125 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
134 template<class T
, class ...Options
>
138 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
147 template<class T
, class ...Options
>
151 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
160 template<class T
, class ...Options
>
164 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
172 template<class ...Options
>
176 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
184 template<class ...Options
>
186 class set_member_hook
;
188 //splaytree/splay_set/splay_multiset
189 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
198 template<class T
, class ...Options
>
202 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
211 template<class T
, class ...Options
>
215 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
224 template<class T
, class ...Options
>
226 class splay_multiset
;
228 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
235 template<class ...Options
>
237 class splay_set_base_hook
;
239 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
246 template<class ...Options
>
248 class splay_set_member_hook
;
250 //avltree/avl_set/avl_multiset
251 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
260 template<class T
, class ...Options
>
264 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
273 template<class T
, class ...Options
>
277 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
286 template<class T
, class ...Options
>
290 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
298 template<class ...Options
>
300 class avl_set_base_hook
;
302 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
310 template<class ...Options
>
312 class avl_set_member_hook
;
315 //treap/treap_set/treap_multiset
316 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
325 template<class T
, class ...Options
>
329 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
338 template<class T
, class ...Options
>
342 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
351 template<class T
, class ...Options
>
353 class treap_multiset
;
355 //Default priority comparison functor
357 struct priority_compare
;
359 //sgtree/sg_set/sg_multiset
360 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
369 template<class T
, class ...Options
>
373 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
382 template<class T
, class ...Options
>
386 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
395 template<class T
, class ...Options
>
399 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
406 template<class ...Options
>
408 class bs_set_base_hook
;
410 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
417 template<class ...Options
>
419 class bs_set_member_hook
;
421 //hashtable/unordered_set/unordered_multiset
423 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
438 template<class T
, class ...Options
>
442 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
457 template<class T
, class ...Options
>
461 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
476 template<class T
, class ...Options
>
478 class unordered_multiset
;
480 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
488 template<class ...Options
>
490 class unordered_set_base_hook
;
492 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
500 template<class ...Options
>
502 class unordered_set_member_hook
;
504 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
511 template<class ...Options
>
515 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
522 template<class ...Options
>
524 class any_member_hook
;
526 } //namespace intrusive {
527 } //namespace boost {
531 #endif //#ifndef BOOST_INTRUSIVE_FWD_HPP