fix doc example typo
[boost.git] / boost / intrusive / intrusive_fwd.hpp
blob5b1e45124dd52fba628c918aa26b0556f58027f9
1 /////////////////////////////////////////////////////////////////////////////
2 //
3 // (C) Copyright Ion Gaztanaga 2007-2008
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.
11 /////////////////////////////////////////////////////////////////////////////
13 #ifndef BOOST_INTRUSIVE_FWD_HPP
14 #define BOOST_INTRUSIVE_FWD_HPP
16 #include <cstddef>
17 #include <boost/intrusive/link_mode.hpp>
18 #include <boost/intrusive/detail/workaround.hpp>
20 /// @cond
22 namespace boost {
24 namespace intrusive {
26 struct none;
28 } //namespace intrusive{
29 } //namespace boost{
31 namespace boost {
32 namespace intrusive {
34 ////////////////////////////
35 // Node algorithms
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 ////////////////////////////
49 // Containers
50 ////////////////////////////
52 //slist
53 #ifndef 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
62 #else
63 template<class T, class ...Options>
64 #endif
65 class slist;
67 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
68 template
69 < class O1 = none
70 , class O2 = none
71 , class O3 = none
73 #else
74 template<class ...Options>
75 #endif
76 class slist_base_hook;
78 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
79 template
80 < class O1 = none
81 , class O2 = none
82 , class O3 = none
84 #else
85 template<class ...Options>
86 #endif
87 class slist_member_hook;
89 //list
90 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
91 template
92 < class T
93 , class O1 = none
94 , class O2 = none
95 , class O3 = none
97 #else
98 template<class T, class ...Options>
99 #endif
100 class list;
102 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
103 template
104 < class O1 = none
105 , class O2 = none
106 , class O3 = none
108 #else
109 template<class ...Options>
110 #endif
111 class list_base_hook;
113 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
114 template
115 < class O1 = none
116 , class O2 = none
117 , class O3 = none
119 #else
120 template<class ...Options>
121 #endif
122 class list_member_hook;
124 //rbtree/set/multiset
125 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
126 template
127 < class T
128 , class O1 = none
129 , class O2 = none
130 , class O3 = none
131 , class O4 = none
133 #else
134 template<class T, class ...Options>
135 #endif
136 class rbtree;
138 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
139 template
140 < class T
141 , class O1 = none
142 , class O2 = none
143 , class O3 = none
144 , class O4 = none
146 #else
147 template<class T, class ...Options>
148 #endif
149 class set;
151 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
152 template
153 < class T
154 , class O1 = none
155 , class O2 = none
156 , class O3 = none
157 , class O4 = none
159 #else
160 template<class T, class ...Options>
161 #endif
162 class multiset;
164 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
165 template
166 < class O1 = none
167 , class O2 = none
168 , class O3 = none
169 , class O4 = none
171 #else
172 template<class ...Options>
173 #endif
174 class set_base_hook;
176 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
177 template
178 < class O1 = none
179 , class O2 = none
180 , class O3 = none
181 , class O4 = none
183 #else
184 template<class ...Options>
185 #endif
186 class set_member_hook;
188 //splaytree/splay_set/splay_multiset
189 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
190 template
191 < class T
192 , class O1 = none
193 , class O2 = none
194 , class O3 = none
195 , class O4 = none
197 #else
198 template<class T, class ...Options>
199 #endif
200 class splaytree;
202 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
203 template
204 < class T
205 , class O1 = none
206 , class O2 = none
207 , class O3 = none
208 , class O4 = none
210 #else
211 template<class T, class ...Options>
212 #endif
213 class splay_set;
215 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
216 template
217 < class T
218 , class O1 = none
219 , class O2 = none
220 , class O3 = none
221 , class O4 = none
223 #else
224 template<class T, class ...Options>
225 #endif
226 class splay_multiset;
228 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
229 template
230 < class O1 = none
231 , class O2 = none
232 , class O3 = none
234 #else
235 template<class ...Options>
236 #endif
237 class splay_set_base_hook;
239 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
240 template
241 < class O1 = none
242 , class O2 = none
243 , class O3 = none
245 #else
246 template<class ...Options>
247 #endif
248 class splay_set_member_hook;
250 //avltree/avl_set/avl_multiset
251 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
252 template
253 < class T
254 , class O1 = none
255 , class O2 = none
256 , class O3 = none
257 , class O4 = none
259 #else
260 template<class T, class ...Options>
261 #endif
262 class avltree;
264 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
265 template
266 < class T
267 , class O1 = none
268 , class O2 = none
269 , class O3 = none
270 , class O4 = none
272 #else
273 template<class T, class ...Options>
274 #endif
275 class avl_set;
277 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
278 template
279 < class T
280 , class O1 = none
281 , class O2 = none
282 , class O3 = none
283 , class O4 = none
285 #else
286 template<class T, class ...Options>
287 #endif
288 class avl_multiset;
290 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
291 template
292 < class O1 = none
293 , class O2 = none
294 , class O3 = none
295 , class O4 = none
297 #else
298 template<class ...Options>
299 #endif
300 class avl_set_base_hook;
302 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
303 template
304 < class O1 = none
305 , class O2 = none
306 , class O3 = none
307 , class O4 = none
309 #else
310 template<class ...Options>
311 #endif
312 class avl_set_member_hook;
315 //treap/treap_set/treap_multiset
316 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
317 template
318 < class T
319 , class O1 = none
320 , class O2 = none
321 , class O3 = none
322 , class O4 = none
324 #else
325 template<class T, class ...Options>
326 #endif
327 class treap;
329 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
330 template
331 < class T
332 , class O1 = none
333 , class O2 = none
334 , class O3 = none
335 , class O4 = none
337 #else
338 template<class T, class ...Options>
339 #endif
340 class treap_set;
342 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
343 template
344 < class T
345 , class O1 = none
346 , class O2 = none
347 , class O3 = none
348 , class O4 = none
350 #else
351 template<class T, class ...Options>
352 #endif
353 class treap_multiset;
355 //Default priority comparison functor
356 template <class T>
357 struct priority_compare;
359 //sgtree/sg_set/sg_multiset
360 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
361 template
362 < class T
363 , class O1 = none
364 , class O2 = none
365 , class O3 = none
366 , class O4 = none
368 #else
369 template<class T, class ...Options>
370 #endif
371 class sgtree;
373 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
374 template
375 < class T
376 , class O1 = none
377 , class O2 = none
378 , class O3 = none
379 , class O4 = none
381 #else
382 template<class T, class ...Options>
383 #endif
384 class sg_set;
386 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
387 template
388 < class T
389 , class O1 = none
390 , class O2 = none
391 , class O3 = none
392 , class O4 = none
394 #else
395 template<class T, class ...Options>
396 #endif
397 class sg_multiset;
399 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
400 template
401 < class O1 = none
402 , class O2 = none
403 , class O3 = none
405 #else
406 template<class ...Options>
407 #endif
408 class bs_set_base_hook;
410 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
411 template
412 < class O1 = none
413 , class O2 = none
414 , class O3 = none
416 #else
417 template<class ...Options>
418 #endif
419 class bs_set_member_hook;
421 //hashtable/unordered_set/unordered_multiset
423 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
424 template
425 < class T
426 , class O1 = none
427 , class O2 = none
428 , class O3 = none
429 , class O4 = none
430 , class O5 = none
431 , class O6 = none
432 , class O7 = none
433 , class O8 = none
434 , class O9 = none
435 , class O10 = none
437 #else
438 template<class T, class ...Options>
439 #endif
440 class hashtable;
442 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
443 template
444 < class T
445 , class O1 = none
446 , class O2 = none
447 , class O3 = none
448 , class O4 = none
449 , class O5 = none
450 , class O6 = none
451 , class O7 = none
452 , class O8 = none
453 , class O9 = none
454 , class O10 = none
456 #else
457 template<class T, class ...Options>
458 #endif
459 class unordered_set;
461 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
462 template
463 < class T
464 , class O1 = none
465 , class O2 = none
466 , class O3 = none
467 , class O4 = none
468 , class O5 = none
469 , class O6 = none
470 , class O7 = none
471 , class O8 = none
472 , class O9 = none
473 , class O10 = none
475 #else
476 template<class T, class ...Options>
477 #endif
478 class unordered_multiset;
480 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
481 template
482 < class O1 = none
483 , class O2 = none
484 , class O3 = none
485 , class O4 = none
487 #else
488 template<class ...Options>
489 #endif
490 class unordered_set_base_hook;
492 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
493 template
494 < class O1 = none
495 , class O2 = none
496 , class O3 = none
497 , class O4 = none
499 #else
500 template<class ...Options>
501 #endif
502 class unordered_set_member_hook;
504 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
505 template
506 < class O1 = none
507 , class O2 = none
508 , class O3 = none
510 #else
511 template<class ...Options>
512 #endif
513 class any_base_hook;
515 #ifndef BOOST_INTRUSIVE_VARIADIC_TEMPLATES
516 template
517 < class O1 = none
518 , class O2 = none
519 , class O3 = none
521 #else
522 template<class ...Options>
523 #endif
524 class any_member_hook;
526 } //namespace intrusive {
527 } //namespace boost {
529 /// @endcond
531 #endif //#ifndef BOOST_INTRUSIVE_FWD_HPP