Chris@16
|
1 /////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 //
|
Chris@16
|
3 // (C) Copyright Ion Gaztanaga 2007-2013
|
Chris@16
|
4 //
|
Chris@16
|
5 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
6 // (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
7 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 //
|
Chris@16
|
9 // See http://www.boost.org/libs/intrusive for documentation.
|
Chris@16
|
10 //
|
Chris@16
|
11 /////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
12
|
Chris@16
|
13 #ifndef BOOST_INTRUSIVE_FWD_HPP
|
Chris@16
|
14 #define BOOST_INTRUSIVE_FWD_HPP
|
Chris@16
|
15
|
Chris@101
|
16 #ifndef BOOST_CONFIG_HPP
|
Chris@101
|
17 # include <boost/config.hpp>
|
Chris@101
|
18 #endif
|
Chris@101
|
19
|
Chris@101
|
20 #if defined(BOOST_HAS_PRAGMA_ONCE)
|
Chris@101
|
21 # pragma once
|
Chris@101
|
22 #endif
|
Chris@101
|
23
|
Chris@101
|
24 //! \file
|
Chris@101
|
25 //! This header file forward declares most Intrusive classes.
|
Chris@101
|
26 //!
|
Chris@101
|
27 //! It forward declares the following containers and hooks:
|
Chris@101
|
28 //! - boost::intrusive::slist / boost::intrusive::slist_base_hook / boost::intrusive::slist_member_hook
|
Chris@101
|
29 //! - boost::intrusive::list / boost::intrusive::list_base_hook / boost::intrusive::list_member_hook
|
Chris@101
|
30 //! - boost::intrusive::bstree / boost::intrusive::bs_set / boost::intrusive::bs_multiset /
|
Chris@101
|
31 //! boost::intrusive::bs_set_base_hook / boost::intrusive::bs_set_member_hook
|
Chris@101
|
32 //! - boost::intrusive::rbtree / boost::intrusive::set / boost::intrusive::multiset /
|
Chris@101
|
33 //! boost::intrusive::set_base_hook / boost::intrusive::set_member_hook
|
Chris@101
|
34 //! - boost::intrusive::avltree / boost::intrusive::avl_set / boost::intrusive::avl_multiset /
|
Chris@101
|
35 //! boost::intrusive::avl_set_base_hook / boost::intrusive::avl_set_member_hook
|
Chris@101
|
36 //! - boost::intrusive::splaytree / boost::intrusive::splay_set / boost::intrusive::splay_multiset
|
Chris@101
|
37 //! - boost::intrusive::sgtree / boost::intrusive::sg_set / boost::intrusive::sg_multiset
|
Chris@101
|
38 //! - boost::intrusive::treap / boost::intrusive::treap_set / boost::intrusive::treap_multiset
|
Chris@101
|
39 //! - boost::intrusive::hashtable / boost::intrusive::unordered_set / boost::intrusive::unordered_multiset /
|
Chris@101
|
40 //! boost::intrusive::unordered_set_base_hook / boost::intrusive::unordered_set_member_hook /
|
Chris@101
|
41 //! - boost::intrusive::any_base_hook / boost::intrusive::any_member_hook
|
Chris@101
|
42 //!
|
Chris@101
|
43 //! It forward declares the following container or hook options:
|
Chris@101
|
44 //! - boost::intrusive::constant_time_size / boost::intrusive::size_type / boost::intrusive::compare / boost::intrusive::equal
|
Chris@101
|
45 //! - boost::intrusive::floating_point / boost::intrusive::priority / boost::intrusive::hash
|
Chris@101
|
46 //! - boost::intrusive::value_traits / boost::intrusive::member_hook / boost::intrusive::function_hook / boost::intrusive::base_hook
|
Chris@101
|
47 //! - boost::intrusive::void_pointer / boost::intrusive::tag / boost::intrusive::link_mode
|
Chris@101
|
48 //! - boost::intrusive::optimize_size / boost::intrusive::linear / boost::intrusive::cache_last
|
Chris@101
|
49 //! - boost::intrusive::bucket_traits / boost::intrusive::store_hash / boost::intrusive::optimize_multikey
|
Chris@101
|
50 //! - boost::intrusive::power_2_buckets / boost::intrusive::cache_begin / boost::intrusive::compare_hash / boost::intrusive::incremental
|
Chris@101
|
51 //!
|
Chris@101
|
52 //! It forward declares the following value traits utilities:
|
Chris@101
|
53 //! - boost::intrusive::value_traits / boost::intrusive::derivation_value_traits /
|
Chris@101
|
54 //! boost::intrusive::trivial_value_traits
|
Chris@101
|
55 //!
|
Chris@101
|
56 //! Finally it forward declares the following general purpose utilities:
|
Chris@101
|
57 //! - boost::intrusive::pointer_plus_bits / boost::intrusive::priority_compare.
|
Chris@101
|
58
|
Chris@101
|
59 #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
Chris@101
|
60
|
Chris@16
|
61 #include <cstddef>
|
Chris@16
|
62 #include <boost/intrusive/link_mode.hpp>
|
Chris@16
|
63 #include <boost/intrusive/detail/workaround.hpp>
|
Chris@16
|
64
|
Chris@16
|
65 namespace boost {
|
Chris@16
|
66 namespace intrusive {
|
Chris@16
|
67
|
Chris@16
|
68 ////////////////////////////
|
Chris@16
|
69 // Node algorithms
|
Chris@16
|
70 ////////////////////////////
|
Chris@16
|
71
|
Chris@16
|
72 //Algorithms predeclarations
|
Chris@16
|
73 template<class NodeTraits>
|
Chris@16
|
74 class circular_list_algorithms;
|
Chris@16
|
75
|
Chris@16
|
76 template<class NodeTraits>
|
Chris@16
|
77 class circular_slist_algorithms;
|
Chris@16
|
78
|
Chris@16
|
79 template<class NodeTraits>
|
Chris@101
|
80 class linear_slist_algorithms;
|
Chris@101
|
81
|
Chris@101
|
82 template<class NodeTraits>
|
Chris@101
|
83 class bstree_algorithms;
|
Chris@101
|
84
|
Chris@101
|
85 template<class NodeTraits>
|
Chris@16
|
86 class rbtree_algorithms;
|
Chris@16
|
87
|
Chris@101
|
88 template<class NodeTraits>
|
Chris@101
|
89 class avltree_algorithms;
|
Chris@101
|
90
|
Chris@101
|
91 template<class NodeTraits>
|
Chris@101
|
92 class sgtree_algorithms;
|
Chris@101
|
93
|
Chris@101
|
94 template<class NodeTraits>
|
Chris@101
|
95 class splaytree_algorithms;
|
Chris@101
|
96
|
Chris@101
|
97 template<class NodeTraits>
|
Chris@101
|
98 class treap_algorithms;
|
Chris@101
|
99
|
Chris@16
|
100 ////////////////////////////
|
Chris@16
|
101 // Containers
|
Chris@16
|
102 ////////////////////////////
|
Chris@16
|
103
|
Chris@16
|
104 //slist
|
Chris@101
|
105 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@101
|
106 template
|
Chris@101
|
107 < class T
|
Chris@101
|
108 , class O1 = void
|
Chris@101
|
109 , class O2 = void
|
Chris@101
|
110 , class O3 = void
|
Chris@101
|
111 , class O4 = void
|
Chris@101
|
112 , class O5 = void
|
Chris@101
|
113 , class O6 = void
|
Chris@101
|
114 >
|
Chris@101
|
115 #else
|
Chris@101
|
116 template<class T, class ...Options>
|
Chris@101
|
117 #endif
|
Chris@101
|
118 class slist;
|
Chris@101
|
119
|
Chris@101
|
120 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@101
|
121 template
|
Chris@101
|
122 < class O1 = void
|
Chris@101
|
123 , class O2 = void
|
Chris@101
|
124 , class O3 = void
|
Chris@101
|
125 >
|
Chris@101
|
126 #else
|
Chris@101
|
127 template<class ...Options>
|
Chris@101
|
128 #endif
|
Chris@101
|
129 class slist_base_hook;
|
Chris@101
|
130
|
Chris@101
|
131 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@101
|
132 template
|
Chris@101
|
133 < class O1 = void
|
Chris@101
|
134 , class O2 = void
|
Chris@101
|
135 , class O3 = void
|
Chris@101
|
136 >
|
Chris@101
|
137 #else
|
Chris@101
|
138 template<class ...Options>
|
Chris@101
|
139 #endif
|
Chris@101
|
140 class slist_member_hook;
|
Chris@101
|
141
|
Chris@101
|
142 //list
|
Chris@101
|
143 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@101
|
144 template
|
Chris@101
|
145 < class T
|
Chris@101
|
146 , class O1 = void
|
Chris@101
|
147 , class O2 = void
|
Chris@101
|
148 , class O3 = void
|
Chris@101
|
149 , class O4 = void
|
Chris@101
|
150 >
|
Chris@101
|
151 #else
|
Chris@101
|
152 template<class T, class ...Options>
|
Chris@101
|
153 #endif
|
Chris@101
|
154 class list;
|
Chris@101
|
155
|
Chris@101
|
156 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@101
|
157 template
|
Chris@101
|
158 < class O1 = void
|
Chris@101
|
159 , class O2 = void
|
Chris@101
|
160 , class O3 = void
|
Chris@101
|
161 >
|
Chris@101
|
162 #else
|
Chris@101
|
163 template<class ...Options>
|
Chris@101
|
164 #endif
|
Chris@101
|
165 class list_base_hook;
|
Chris@101
|
166
|
Chris@101
|
167 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@101
|
168 template
|
Chris@101
|
169 < class O1 = void
|
Chris@101
|
170 , class O2 = void
|
Chris@101
|
171 , class O3 = void
|
Chris@101
|
172 >
|
Chris@101
|
173 #else
|
Chris@101
|
174 template<class ...Options>
|
Chris@101
|
175 #endif
|
Chris@101
|
176 class list_member_hook;
|
Chris@101
|
177
|
Chris@101
|
178 //rbtree/set/multiset
|
Chris@101
|
179 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
180 template
|
Chris@16
|
181 < class T
|
Chris@16
|
182 , class O1 = void
|
Chris@16
|
183 , class O2 = void
|
Chris@16
|
184 , class O3 = void
|
Chris@16
|
185 , class O4 = void
|
Chris@16
|
186 , class O5 = void
|
Chris@16
|
187 >
|
Chris@16
|
188 #else
|
Chris@16
|
189 template<class T, class ...Options>
|
Chris@16
|
190 #endif
|
Chris@101
|
191 class rbtree;
|
Chris@16
|
192
|
Chris@101
|
193 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
194 template
|
Chris@16
|
195 < class T
|
Chris@16
|
196 , class O1 = void
|
Chris@16
|
197 , class O2 = void
|
Chris@16
|
198 , class O3 = void
|
Chris@16
|
199 , class O4 = void
|
Chris@101
|
200 , class O5 = void
|
Chris@16
|
201 >
|
Chris@16
|
202 #else
|
Chris@16
|
203 template<class T, class ...Options>
|
Chris@16
|
204 #endif
|
Chris@101
|
205 class set;
|
Chris@16
|
206
|
Chris@101
|
207 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
208 template
|
Chris@16
|
209 < class T
|
Chris@16
|
210 , class O1 = void
|
Chris@16
|
211 , class O2 = void
|
Chris@16
|
212 , class O3 = void
|
Chris@16
|
213 , class O4 = void
|
Chris@101
|
214 , class O5 = void
|
Chris@16
|
215 >
|
Chris@16
|
216 #else
|
Chris@16
|
217 template<class T, class ...Options>
|
Chris@16
|
218 #endif
|
Chris@16
|
219 class multiset;
|
Chris@16
|
220
|
Chris@101
|
221 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
222 template
|
Chris@16
|
223 < class O1 = void
|
Chris@16
|
224 , class O2 = void
|
Chris@16
|
225 , class O3 = void
|
Chris@16
|
226 , class O4 = void
|
Chris@16
|
227 >
|
Chris@16
|
228 #else
|
Chris@16
|
229 template<class ...Options>
|
Chris@16
|
230 #endif
|
Chris@16
|
231 class set_base_hook;
|
Chris@16
|
232
|
Chris@101
|
233 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
234 template
|
Chris@16
|
235 < class O1 = void
|
Chris@16
|
236 , class O2 = void
|
Chris@16
|
237 , class O3 = void
|
Chris@16
|
238 , class O4 = void
|
Chris@16
|
239 >
|
Chris@16
|
240 #else
|
Chris@16
|
241 template<class ...Options>
|
Chris@16
|
242 #endif
|
Chris@16
|
243 class set_member_hook;
|
Chris@16
|
244
|
Chris@16
|
245 //splaytree/splay_set/splay_multiset
|
Chris@101
|
246 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
247 template
|
Chris@16
|
248 < class T
|
Chris@16
|
249 , class O1 = void
|
Chris@16
|
250 , class O2 = void
|
Chris@16
|
251 , class O3 = void
|
Chris@16
|
252 , class O4 = void
|
Chris@101
|
253 , class O5 = void
|
Chris@16
|
254 >
|
Chris@16
|
255 #else
|
Chris@16
|
256 template<class T, class ...Options>
|
Chris@16
|
257 #endif
|
Chris@16
|
258 class splaytree;
|
Chris@16
|
259
|
Chris@101
|
260 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
261 template
|
Chris@16
|
262 < class T
|
Chris@16
|
263 , class O1 = void
|
Chris@16
|
264 , class O2 = void
|
Chris@16
|
265 , class O3 = void
|
Chris@16
|
266 , class O4 = void
|
Chris@101
|
267 , class O5 = void
|
Chris@16
|
268 >
|
Chris@16
|
269 #else
|
Chris@16
|
270 template<class T, class ...Options>
|
Chris@16
|
271 #endif
|
Chris@16
|
272 class splay_set;
|
Chris@16
|
273
|
Chris@101
|
274 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
275 template
|
Chris@16
|
276 < class T
|
Chris@16
|
277 , class O1 = void
|
Chris@16
|
278 , class O2 = void
|
Chris@16
|
279 , class O3 = void
|
Chris@16
|
280 , class O4 = void
|
Chris@101
|
281 , class O5 = void
|
Chris@16
|
282 >
|
Chris@16
|
283 #else
|
Chris@16
|
284 template<class T, class ...Options>
|
Chris@16
|
285 #endif
|
Chris@16
|
286 class splay_multiset;
|
Chris@16
|
287
|
Chris@16
|
288 //avltree/avl_set/avl_multiset
|
Chris@101
|
289 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
290 template
|
Chris@16
|
291 < class T
|
Chris@16
|
292 , class O1 = void
|
Chris@16
|
293 , class O2 = void
|
Chris@16
|
294 , class O3 = void
|
Chris@16
|
295 , class O4 = void
|
Chris@101
|
296 , class O5 = void
|
Chris@16
|
297 >
|
Chris@16
|
298 #else
|
Chris@16
|
299 template<class T, class ...Options>
|
Chris@16
|
300 #endif
|
Chris@16
|
301 class avltree;
|
Chris@16
|
302
|
Chris@101
|
303 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
304 template
|
Chris@16
|
305 < class T
|
Chris@16
|
306 , class O1 = void
|
Chris@16
|
307 , class O2 = void
|
Chris@16
|
308 , class O3 = void
|
Chris@16
|
309 , class O4 = void
|
Chris@101
|
310 , class O5 = void
|
Chris@16
|
311 >
|
Chris@16
|
312 #else
|
Chris@16
|
313 template<class T, class ...Options>
|
Chris@16
|
314 #endif
|
Chris@16
|
315 class avl_set;
|
Chris@16
|
316
|
Chris@101
|
317 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
318 template
|
Chris@16
|
319 < class T
|
Chris@16
|
320 , class O1 = void
|
Chris@16
|
321 , class O2 = void
|
Chris@16
|
322 , class O3 = void
|
Chris@16
|
323 , class O4 = void
|
Chris@101
|
324 , class O5 = void
|
Chris@16
|
325 >
|
Chris@16
|
326 #else
|
Chris@16
|
327 template<class T, class ...Options>
|
Chris@16
|
328 #endif
|
Chris@16
|
329 class avl_multiset;
|
Chris@16
|
330
|
Chris@101
|
331 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
332 template
|
Chris@16
|
333 < class O1 = void
|
Chris@16
|
334 , class O2 = void
|
Chris@16
|
335 , class O3 = void
|
Chris@16
|
336 , class O4 = void
|
Chris@16
|
337 >
|
Chris@16
|
338 #else
|
Chris@16
|
339 template<class ...Options>
|
Chris@16
|
340 #endif
|
Chris@16
|
341 class avl_set_base_hook;
|
Chris@16
|
342
|
Chris@101
|
343 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
344 template
|
Chris@16
|
345 < class O1 = void
|
Chris@16
|
346 , class O2 = void
|
Chris@16
|
347 , class O3 = void
|
Chris@16
|
348 , class O4 = void
|
Chris@16
|
349 >
|
Chris@16
|
350 #else
|
Chris@16
|
351 template<class ...Options>
|
Chris@16
|
352 #endif
|
Chris@16
|
353 class avl_set_member_hook;
|
Chris@16
|
354
|
Chris@16
|
355
|
Chris@16
|
356 //treap/treap_set/treap_multiset
|
Chris@101
|
357 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
358 template
|
Chris@16
|
359 < class T
|
Chris@16
|
360 , class O1 = void
|
Chris@16
|
361 , class O2 = void
|
Chris@16
|
362 , class O3 = void
|
Chris@16
|
363 , class O4 = void
|
Chris@101
|
364 , class O5 = void
|
Chris@16
|
365 >
|
Chris@16
|
366 #else
|
Chris@16
|
367 template<class T, class ...Options>
|
Chris@16
|
368 #endif
|
Chris@16
|
369 class treap;
|
Chris@16
|
370
|
Chris@101
|
371 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
372 template
|
Chris@16
|
373 < class T
|
Chris@16
|
374 , class O1 = void
|
Chris@16
|
375 , class O2 = void
|
Chris@16
|
376 , class O3 = void
|
Chris@16
|
377 , class O4 = void
|
Chris@101
|
378 , class O5 = void
|
Chris@16
|
379 >
|
Chris@16
|
380 #else
|
Chris@16
|
381 template<class T, class ...Options>
|
Chris@16
|
382 #endif
|
Chris@16
|
383 class treap_set;
|
Chris@16
|
384
|
Chris@101
|
385 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
386 template
|
Chris@16
|
387 < class T
|
Chris@16
|
388 , class O1 = void
|
Chris@16
|
389 , class O2 = void
|
Chris@16
|
390 , class O3 = void
|
Chris@16
|
391 , class O4 = void
|
Chris@101
|
392 , class O5 = void
|
Chris@16
|
393 >
|
Chris@16
|
394 #else
|
Chris@16
|
395 template<class T, class ...Options>
|
Chris@16
|
396 #endif
|
Chris@16
|
397 class treap_multiset;
|
Chris@16
|
398
|
Chris@16
|
399 //sgtree/sg_set/sg_multiset
|
Chris@101
|
400 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
401 template
|
Chris@16
|
402 < class T
|
Chris@16
|
403 , class O1 = void
|
Chris@16
|
404 , class O2 = void
|
Chris@16
|
405 , class O3 = void
|
Chris@16
|
406 , class O4 = void
|
Chris@101
|
407 , class O5 = void
|
Chris@16
|
408 >
|
Chris@16
|
409 #else
|
Chris@16
|
410 template<class T, class ...Options>
|
Chris@16
|
411 #endif
|
Chris@16
|
412 class sgtree;
|
Chris@16
|
413
|
Chris@101
|
414 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
415 template
|
Chris@16
|
416 < class T
|
Chris@16
|
417 , class O1 = void
|
Chris@16
|
418 , class O2 = void
|
Chris@16
|
419 , class O3 = void
|
Chris@16
|
420 , class O4 = void
|
Chris@101
|
421 , class O5 = void
|
Chris@16
|
422 >
|
Chris@16
|
423 #else
|
Chris@16
|
424 template<class T, class ...Options>
|
Chris@16
|
425 #endif
|
Chris@16
|
426 class sg_set;
|
Chris@16
|
427
|
Chris@101
|
428 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
429 template
|
Chris@16
|
430 < class T
|
Chris@16
|
431 , class O1 = void
|
Chris@16
|
432 , class O2 = void
|
Chris@16
|
433 , class O3 = void
|
Chris@16
|
434 , class O4 = void
|
Chris@101
|
435 , class O5 = void
|
Chris@16
|
436 >
|
Chris@16
|
437 #else
|
Chris@16
|
438 template<class T, class ...Options>
|
Chris@16
|
439 #endif
|
Chris@16
|
440 class sg_multiset;
|
Chris@16
|
441
|
Chris@101
|
442 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
443 template
|
Chris@16
|
444 < class T
|
Chris@16
|
445 , class O1 = void
|
Chris@16
|
446 , class O2 = void
|
Chris@16
|
447 , class O3 = void
|
Chris@16
|
448 , class O4 = void
|
Chris@101
|
449 , class O5 = void
|
Chris@16
|
450 >
|
Chris@16
|
451 #else
|
Chris@16
|
452 template<class T, class ...Options>
|
Chris@16
|
453 #endif
|
Chris@16
|
454 class bstree;
|
Chris@16
|
455
|
Chris@101
|
456 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
457 template
|
Chris@16
|
458 < class T
|
Chris@16
|
459 , class O1 = void
|
Chris@16
|
460 , class O2 = void
|
Chris@16
|
461 , class O3 = void
|
Chris@16
|
462 , class O4 = void
|
Chris@101
|
463 , class O5 = void
|
Chris@16
|
464 >
|
Chris@16
|
465 #else
|
Chris@16
|
466 template<class T, class ...Options>
|
Chris@16
|
467 #endif
|
Chris@16
|
468 class bs_set;
|
Chris@16
|
469
|
Chris@101
|
470 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
471 template
|
Chris@16
|
472 < class T
|
Chris@16
|
473 , class O1 = void
|
Chris@16
|
474 , class O2 = void
|
Chris@16
|
475 , class O3 = void
|
Chris@16
|
476 , class O4 = void
|
Chris@101
|
477 , class O5 = void
|
Chris@16
|
478 >
|
Chris@16
|
479 #else
|
Chris@16
|
480 template<class T, class ...Options>
|
Chris@16
|
481 #endif
|
Chris@16
|
482 class bs_multiset;
|
Chris@16
|
483
|
Chris@101
|
484 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
485 template
|
Chris@16
|
486 < class O1 = void
|
Chris@16
|
487 , class O2 = void
|
Chris@16
|
488 , class O3 = void
|
Chris@16
|
489 >
|
Chris@16
|
490 #else
|
Chris@16
|
491 template<class ...Options>
|
Chris@16
|
492 #endif
|
Chris@16
|
493 class bs_set_base_hook;
|
Chris@16
|
494
|
Chris@101
|
495 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
496 template
|
Chris@16
|
497 < class O1 = void
|
Chris@16
|
498 , class O2 = void
|
Chris@16
|
499 , class O3 = void
|
Chris@16
|
500 >
|
Chris@16
|
501 #else
|
Chris@16
|
502 template<class ...Options>
|
Chris@16
|
503 #endif
|
Chris@16
|
504 class bs_set_member_hook;
|
Chris@16
|
505
|
Chris@16
|
506 //hashtable/unordered_set/unordered_multiset
|
Chris@16
|
507
|
Chris@101
|
508 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
509 template
|
Chris@16
|
510 < class T
|
Chris@16
|
511 , class O1 = void
|
Chris@16
|
512 , class O2 = void
|
Chris@16
|
513 , class O3 = void
|
Chris@16
|
514 , class O4 = void
|
Chris@16
|
515 , class O5 = void
|
Chris@16
|
516 , class O6 = void
|
Chris@16
|
517 , class O7 = void
|
Chris@16
|
518 , class O8 = void
|
Chris@16
|
519 , class O9 = void
|
Chris@16
|
520 , class O10 = void
|
Chris@16
|
521 >
|
Chris@16
|
522 #else
|
Chris@16
|
523 template<class T, class ...Options>
|
Chris@16
|
524 #endif
|
Chris@16
|
525 class hashtable;
|
Chris@16
|
526
|
Chris@101
|
527 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
528 template
|
Chris@16
|
529 < class T
|
Chris@16
|
530 , class O1 = void
|
Chris@16
|
531 , class O2 = void
|
Chris@16
|
532 , class O3 = void
|
Chris@16
|
533 , class O4 = void
|
Chris@16
|
534 , class O5 = void
|
Chris@16
|
535 , class O6 = void
|
Chris@16
|
536 , class O7 = void
|
Chris@16
|
537 , class O8 = void
|
Chris@16
|
538 , class O9 = void
|
Chris@16
|
539 , class O10 = void
|
Chris@16
|
540 >
|
Chris@16
|
541 #else
|
Chris@16
|
542 template<class T, class ...Options>
|
Chris@16
|
543 #endif
|
Chris@16
|
544 class unordered_set;
|
Chris@16
|
545
|
Chris@101
|
546 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
547 template
|
Chris@16
|
548 < class T
|
Chris@16
|
549 , class O1 = void
|
Chris@16
|
550 , class O2 = void
|
Chris@16
|
551 , class O3 = void
|
Chris@16
|
552 , class O4 = void
|
Chris@16
|
553 , class O5 = void
|
Chris@16
|
554 , class O6 = void
|
Chris@16
|
555 , class O7 = void
|
Chris@16
|
556 , class O8 = void
|
Chris@16
|
557 , class O9 = void
|
Chris@16
|
558 , class O10 = void
|
Chris@16
|
559 >
|
Chris@16
|
560 #else
|
Chris@16
|
561 template<class T, class ...Options>
|
Chris@16
|
562 #endif
|
Chris@16
|
563 class unordered_multiset;
|
Chris@16
|
564
|
Chris@101
|
565 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
566 template
|
Chris@16
|
567 < class O1 = void
|
Chris@16
|
568 , class O2 = void
|
Chris@16
|
569 , class O3 = void
|
Chris@16
|
570 , class O4 = void
|
Chris@16
|
571 >
|
Chris@16
|
572 #else
|
Chris@16
|
573 template<class ...Options>
|
Chris@16
|
574 #endif
|
Chris@16
|
575 class unordered_set_base_hook;
|
Chris@16
|
576
|
Chris@101
|
577 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
578 template
|
Chris@16
|
579 < class O1 = void
|
Chris@16
|
580 , class O2 = void
|
Chris@16
|
581 , class O3 = void
|
Chris@16
|
582 , class O4 = void
|
Chris@16
|
583 >
|
Chris@16
|
584 #else
|
Chris@16
|
585 template<class ...Options>
|
Chris@16
|
586 #endif
|
Chris@16
|
587 class unordered_set_member_hook;
|
Chris@16
|
588
|
Chris@101
|
589 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
590 template
|
Chris@16
|
591 < class O1 = void
|
Chris@16
|
592 , class O2 = void
|
Chris@16
|
593 , class O3 = void
|
Chris@16
|
594 >
|
Chris@16
|
595 #else
|
Chris@16
|
596 template<class ...Options>
|
Chris@16
|
597 #endif
|
Chris@16
|
598 class any_base_hook;
|
Chris@16
|
599
|
Chris@101
|
600 #if !defined(BOOST_INTRUSIVE_VARIADIC_TEMPLATES)
|
Chris@16
|
601 template
|
Chris@16
|
602 < class O1 = void
|
Chris@16
|
603 , class O2 = void
|
Chris@16
|
604 , class O3 = void
|
Chris@16
|
605 >
|
Chris@16
|
606 #else
|
Chris@16
|
607 template<class ...Options>
|
Chris@16
|
608 #endif
|
Chris@16
|
609 class any_member_hook;
|
Chris@16
|
610
|
Chris@101
|
611 //Options
|
Chris@101
|
612
|
Chris@101
|
613 template<bool Enabled>
|
Chris@101
|
614 struct constant_time_size;
|
Chris@101
|
615
|
Chris@101
|
616 template<typename SizeType>
|
Chris@101
|
617 struct size_type;
|
Chris@101
|
618
|
Chris@101
|
619 template<typename Compare>
|
Chris@101
|
620 struct compare;
|
Chris@101
|
621
|
Chris@101
|
622 template<bool Enabled>
|
Chris@101
|
623 struct floating_point;
|
Chris@101
|
624
|
Chris@101
|
625 template<typename Equal>
|
Chris@101
|
626 struct equal;
|
Chris@101
|
627
|
Chris@101
|
628 template<typename Priority>
|
Chris@101
|
629 struct priority;
|
Chris@101
|
630
|
Chris@101
|
631 template<typename Hash>
|
Chris@101
|
632 struct hash;
|
Chris@101
|
633
|
Chris@101
|
634 template<typename ValueTraits> struct value_traits;
|
Chris@101
|
635
|
Chris@101
|
636 template< typename Parent
|
Chris@101
|
637 , typename MemberHook
|
Chris@101
|
638 , MemberHook Parent::* PtrToMember>
|
Chris@101
|
639 struct member_hook;
|
Chris@101
|
640
|
Chris@101
|
641 template<typename Functor>
|
Chris@101
|
642 struct function_hook;
|
Chris@101
|
643
|
Chris@101
|
644 template<typename BaseHook>
|
Chris@101
|
645 struct base_hook;
|
Chris@101
|
646
|
Chris@101
|
647 template<typename VoidPointer>
|
Chris@101
|
648 struct void_pointer;
|
Chris@101
|
649
|
Chris@101
|
650 template<typename Tag>
|
Chris@101
|
651 struct tag;
|
Chris@101
|
652
|
Chris@101
|
653 template<link_mode_type LinkType>
|
Chris@101
|
654 struct link_mode;
|
Chris@101
|
655
|
Chris@101
|
656 template<bool Enabled> struct
|
Chris@101
|
657 optimize_size;
|
Chris@101
|
658
|
Chris@101
|
659 template<bool Enabled>
|
Chris@101
|
660 struct linear;
|
Chris@101
|
661
|
Chris@101
|
662 template<bool Enabled>
|
Chris@101
|
663 struct cache_last;
|
Chris@101
|
664
|
Chris@101
|
665 template<typename BucketTraits>
|
Chris@101
|
666 struct bucket_traits;
|
Chris@101
|
667
|
Chris@101
|
668 template<bool Enabled>
|
Chris@101
|
669 struct store_hash;
|
Chris@101
|
670
|
Chris@101
|
671 template<bool Enabled>
|
Chris@101
|
672 struct optimize_multikey;
|
Chris@101
|
673
|
Chris@101
|
674 template<bool Enabled>
|
Chris@101
|
675 struct power_2_buckets;
|
Chris@101
|
676
|
Chris@101
|
677 template<bool Enabled>
|
Chris@101
|
678 struct cache_begin;
|
Chris@101
|
679
|
Chris@101
|
680 template<bool Enabled>
|
Chris@101
|
681 struct compare_hash;
|
Chris@101
|
682
|
Chris@101
|
683 template<bool Enabled>
|
Chris@101
|
684 struct incremental;
|
Chris@101
|
685
|
Chris@101
|
686 //Value traits
|
Chris@101
|
687
|
Chris@101
|
688 template<typename ValueTraits>
|
Chris@101
|
689 struct value_traits;
|
Chris@101
|
690
|
Chris@101
|
691 template< typename Parent
|
Chris@101
|
692 , typename MemberHook
|
Chris@101
|
693 , MemberHook Parent::* PtrToMember>
|
Chris@101
|
694 struct member_hook;
|
Chris@101
|
695
|
Chris@101
|
696 template< typename Functor>
|
Chris@101
|
697 struct function_hook;
|
Chris@101
|
698
|
Chris@101
|
699 template<typename BaseHook>
|
Chris@101
|
700 struct base_hook;
|
Chris@101
|
701
|
Chris@101
|
702 template<class T, class NodeTraits, link_mode_type LinkMode = safe_link>
|
Chris@101
|
703 struct derivation_value_traits;
|
Chris@101
|
704
|
Chris@101
|
705 template<class NodeTraits, link_mode_type LinkMode = normal_link>
|
Chris@101
|
706 struct trivial_value_traits;
|
Chris@101
|
707
|
Chris@101
|
708 //Additional utilities
|
Chris@101
|
709
|
Chris@101
|
710 template<typename VoidPointer, std::size_t Alignment>
|
Chris@101
|
711 struct max_pointer_plus_bits;
|
Chris@101
|
712
|
Chris@101
|
713 template<std::size_t Alignment>
|
Chris@101
|
714 struct max_pointer_plus_bits<void *, Alignment>;
|
Chris@101
|
715
|
Chris@101
|
716 template<typename Pointer, std::size_t NumBits>
|
Chris@101
|
717 struct pointer_plus_bits;
|
Chris@101
|
718
|
Chris@101
|
719 template<typename T, std::size_t NumBits>
|
Chris@101
|
720 struct pointer_plus_bits<T *, NumBits>;
|
Chris@101
|
721
|
Chris@101
|
722 template<typename Ptr>
|
Chris@101
|
723 struct pointer_traits;
|
Chris@101
|
724
|
Chris@101
|
725 template<typename T>
|
Chris@101
|
726 struct pointer_traits<T *>;
|
Chris@101
|
727
|
Chris@16
|
728 } //namespace intrusive {
|
Chris@16
|
729 } //namespace boost {
|
Chris@16
|
730
|
Chris@101
|
731 #endif //#if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
|
Chris@16
|
732
|
Chris@16
|
733 #endif //#ifndef BOOST_INTRUSIVE_FWD_HPP
|