]> git.sesse.net Git - casparcg/blob - dependencies/boost/boost/intrusive/intrusive_fwd.hpp
Manually merged pull request #222
[casparcg] / dependencies / boost / boost / intrusive / intrusive_fwd.hpp
1 /////////////////////////////////////////////////////////////////////////////
2 //
3 // (C) Copyright Ion Gaztanaga  2007-2009
4 //
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)
8 //
9 // See http://www.boost.org/libs/intrusive for documentation.
10 //
11 /////////////////////////////////////////////////////////////////////////////
12
13 #ifndef BOOST_INTRUSIVE_FWD_HPP
14 #define BOOST_INTRUSIVE_FWD_HPP
15
16 #include <cstddef>
17 #include <boost/intrusive/link_mode.hpp>
18 #include <boost/intrusive/detail/workaround.hpp>
19
20 /// @cond
21
22 namespace boost {
23
24 namespace intrusive {
25
26 struct none;
27
28 }  //namespace intrusive{
29 }  //namespace boost{
30
31 namespace boost {
32 namespace intrusive {
33
34 ////////////////////////////
35 //     Node algorithms
36 ////////////////////////////
37
38 //Algorithms predeclarations
39 template<class NodeTraits>
40 class circular_list_algorithms;
41
42 template<class NodeTraits>
43 class circular_slist_algorithms;
44
45 template<class NodeTraits>
46 class rbtree_algorithms;
47
48 ////////////////////////////
49 //       Containers
50 ////////////////////////////
51
52 //slist
53 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
54 template
55    < class T
56    , class O1  = none
57    , class O2  = none
58    , class O3  = none
59    , class O4  = none
60    , class O5  = none
61    >
62 #else
63 template<class T, class ...Options>
64 #endif
65 class slist;
66
67 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
68 template
69    < class O1  = none
70    , class O2  = none
71    , class O3  = none
72    >
73 #else
74 template<class ...Options>
75 #endif
76 class slist_base_hook;
77
78 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
79 template
80    < class O1  = none
81    , class O2  = none
82    , class O3  = none
83    >
84 #else
85 template<class ...Options>
86 #endif
87 class slist_member_hook;
88
89 //list
90 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
91 template
92    < class T
93    , class O1  = none
94    , class O2  = none
95    , class O3  = none
96    >
97 #else
98 template<class T, class ...Options>
99 #endif
100 class list;
101
102 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
103 template
104    < class O1  = none
105    , class O2  = none
106    , class O3  = none
107    >
108 #else
109 template<class ...Options>
110 #endif
111 class list_base_hook;
112
113 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
114 template
115    < class O1  = none
116    , class O2  = none
117    , class O3  = none
118    >
119 #else
120 template<class ...Options>
121 #endif
122 class list_member_hook;
123
124 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
125 template
126    < class O1  = none
127    , class O2  = none
128    , class O3  = none
129    >
130 #else
131 template<class ...Options>
132 #endif
133 class list_hook;
134
135 //rbtree/set/multiset
136 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
137 template
138    < class T
139    , class O1  = none
140    , class O2  = none
141    , class O3  = none
142    , class O4  = none
143    >
144 #else
145 template<class T, class ...Options>
146 #endif
147 class rbtree;
148
149 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
150 template
151    < class T
152    , class O1  = none
153    , class O2  = none
154    , class O3  = none
155    , class O4  = none
156    >
157 #else
158 template<class T, class ...Options>
159 #endif
160 class set;
161
162 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
163 template
164    < class T
165    , class O1  = none
166    , class O2  = none
167    , class O3  = none
168    , class O4  = none
169    >
170 #else
171 template<class T, class ...Options>
172 #endif
173 class multiset;
174
175 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
176 template
177    < class O1  = none
178    , class O2  = none
179    , class O3  = none
180    , class O4  = none
181    >
182 #else
183 template<class ...Options>
184 #endif
185 class set_base_hook;
186
187 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
188 template
189    < class O1  = none
190    , class O2  = none
191    , class O3  = none
192    , class O4  = none
193    >
194 #else
195 template<class ...Options>
196 #endif
197 class set_member_hook;
198
199 //splaytree/splay_set/splay_multiset
200 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
201 template
202    < class T
203    , class O1  = none
204    , class O2  = none
205    , class O3  = none
206    , class O4  = none
207    >
208 #else
209 template<class T, class ...Options>
210 #endif
211 class splaytree;
212
213 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
214 template
215    < class T
216    , class O1  = none
217    , class O2  = none
218    , class O3  = none
219    , class O4  = none
220    >
221 #else
222 template<class T, class ...Options>
223 #endif
224 class splay_set;
225
226 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
227 template
228    < class T
229    , class O1  = none
230    , class O2  = none
231    , class O3  = none
232    , class O4  = none
233    >
234 #else
235 template<class T, class ...Options>
236 #endif
237 class splay_multiset;
238
239 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
240 template
241    < class O1  = none
242    , class O2  = none
243    , class O3  = none
244    >
245 #else
246 template<class ...Options>
247 #endif
248 class splay_set_base_hook;
249
250 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
251 template
252    < class O1  = none
253    , class O2  = none
254    , class O3  = none
255    >
256 #else
257 template<class ...Options>
258 #endif
259 class splay_set_member_hook;
260
261 //avltree/avl_set/avl_multiset
262 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
263 template
264    < class T
265    , class O1  = none
266    , class O2  = none
267    , class O3  = none
268    , class O4  = none
269    >
270 #else
271 template<class T, class ...Options>
272 #endif
273 class avltree;
274
275 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
276 template
277    < class T
278    , class O1  = none
279    , class O2  = none
280    , class O3  = none
281    , class O4  = none
282    >
283 #else
284 template<class T, class ...Options>
285 #endif
286 class avl_set;
287
288 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
289 template
290    < class T
291    , class O1  = none
292    , class O2  = none
293    , class O3  = none
294    , class O4  = none
295    >
296 #else
297 template<class T, class ...Options>
298 #endif
299 class avl_multiset;
300
301 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
302 template
303    < class O1  = none
304    , class O2  = none
305    , class O3  = none
306    , class O4  = none
307    >
308 #else
309 template<class ...Options>
310 #endif
311 class avl_set_base_hook;
312
313 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
314 template
315    < class O1  = none
316    , class O2  = none
317    , class O3  = none
318    , class O4  = none
319    >
320 #else
321 template<class ...Options>
322 #endif
323 class avl_set_member_hook;
324
325
326 //treap/treap_set/treap_multiset
327 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
328 template
329    < class T
330    , class O1  = none
331    , class O2  = none
332    , class O3  = none
333    , class O4  = none
334    >
335 #else
336 template<class T, class ...Options>
337 #endif
338 class treap;
339
340 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
341 template
342    < class T
343    , class O1  = none
344    , class O2  = none
345    , class O3  = none
346    , class O4  = none
347    >
348 #else
349 template<class T, class ...Options>
350 #endif
351 class treap_set;
352
353 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
354 template
355    < class T
356    , class O1  = none
357    , class O2  = none
358    , class O3  = none
359    , class O4  = none
360    >
361 #else
362 template<class T, class ...Options>
363 #endif
364 class treap_multiset;
365
366 //Default priority comparison functor
367 template <class T>
368 struct priority_compare;
369
370 //sgtree/sg_set/sg_multiset
371 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
372 template
373    < class T
374    , class O1  = none
375    , class O2  = none
376    , class O3  = none
377    , class O4  = none
378    >
379 #else
380 template<class T, class ...Options>
381 #endif
382 class sgtree;
383
384 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
385 template
386    < class T
387    , class O1  = none
388    , class O2  = none
389    , class O3  = none
390    , class O4  = none
391    >
392 #else
393 template<class T, class ...Options>
394 #endif
395 class sg_set;
396
397 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
398 template
399    < class T
400    , class O1  = none
401    , class O2  = none
402    , class O3  = none
403    , class O4  = none
404    >
405 #else
406 template<class T, class ...Options>
407 #endif
408 class sg_multiset;
409
410 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
411 template
412    < class O1  = none
413    , class O2  = none
414    , class O3  = none
415    >
416 #else
417 template<class ...Options>
418 #endif
419 class bs_set_base_hook;
420
421 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
422 template
423    < class O1  = none
424    , class O2  = none
425    , class O3  = none
426    >
427 #else
428 template<class ...Options>
429 #endif
430 class bs_set_member_hook;
431
432 //hashtable/unordered_set/unordered_multiset
433
434 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
435 template
436    < class T
437    , class O1  = none
438    , class O2  = none
439    , class O3  = none
440    , class O4  = none
441    , class O5  = none
442    , class O6  = none
443    , class O7  = none
444    , class O8  = none
445    , class O9  = none
446    , class O10 = none
447    >
448 #else
449 template<class T, class ...Options>
450 #endif
451 class hashtable;
452
453 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
454 template
455    < class T
456    , class O1  = none
457    , class O2  = none
458    , class O3  = none
459    , class O4  = none
460    , class O5  = none
461    , class O6  = none
462    , class O7  = none
463    , class O8  = none
464    , class O9  = none
465    , class O10 = none
466    >
467 #else
468 template<class T, class ...Options>
469 #endif
470 class unordered_set;
471
472 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
473 template
474    < class T
475    , class O1  = none
476    , class O2  = none
477    , class O3  = none
478    , class O4  = none
479    , class O5  = none
480    , class O6  = none
481    , class O7  = none
482    , class O8  = none
483    , class O9  = none
484    , class O10 = none
485    >
486 #else
487 template<class T, class ...Options>
488 #endif
489 class unordered_multiset;
490
491 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
492 template
493    < class O1  = none
494    , class O2  = none
495    , class O3  = none
496    , class O4  = none
497    >
498 #else
499 template<class ...Options>
500 #endif
501 class unordered_set_base_hook;
502
503 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
504 template
505    < class O1  = none
506    , class O2  = none
507    , class O3  = none
508    , class O4  = none
509    >
510 #else
511 template<class ...Options>
512 #endif
513 class unordered_set_member_hook;
514
515 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
516 template
517    < class O1  = none
518    , class O2  = none
519    , class O3  = none
520    >
521 #else
522 template<class ...Options>
523 #endif
524 class any_base_hook;
525
526 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
527 template
528    < class O1  = none
529    , class O2  = none
530    , class O3  = none
531    >
532 #else
533 template<class ...Options>
534 #endif
535 class any_member_hook;
536
537 }  //namespace intrusive {
538 }  //namespace boost {
539
540 /// @endcond
541
542 #endif   //#ifndef BOOST_INTRUSIVE_FWD_HPP