comparison DEPENDENCIES/generic/include/boost/intrusive/intrusive_fwd.hpp @ 101:c530137014c0

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