intrusive.html 35.4 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Chapter 17. Boost.Intrusive</title>
<link rel="stylesheet" href="../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries (BoostBook Subset)">
<link rel="prev" href="boost/interprocess/xsi_shared_memory.html" title="Class xsi_shared_memory">
<link rel="next" href="intrusive/intrusive_vs_nontrusive.html" title="Intrusive and non-intrusive containers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
<td align="center"><a href="../../index.html">Home</a></td>
<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost/interprocess/xsi_shared_memory.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.html"><img src="../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="intrusive/intrusive_vs_nontrusive.html"><img src="../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="chapter">
<div class="titlepage"><div>
<div><h2 class="title">
<a name="intrusive"></a>Chapter 17. Boost.Intrusive</h2></div>
<div><div class="author"><h3 class="author">
<span class="firstname">Olaf</span> <span class="surname">Krzikalla</span>
</h3></div></div>
<div><div class="author"><h3 class="author">
<span class="firstname">Ion</span> <span class="surname">Gaztanaga</span>
</h3></div></div>
<div><p class="copyright">Copyright © 2005 Olaf Krzikalla</p></div>
<div><p class="copyright">Copyright © 2006-2015 Ion Gaztanaga</p></div>
<div><div class="legalnotice">
<a name="intrusive.legal"></a><p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></div>
</div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
<dt><span class="section"><a href="intrusive.html#intrusive.introduction">Introduction</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive.html#intrusive.introduction.introduction_presenting">Presenting
      Boost.Intrusive</a></span></dt>
<dt><span class="section"><a href="intrusive.html#intrusive.introduction.introduction_building_intrusive">Building
      Boost.Intrusive</a></span></dt>
<dt><span class="section"><a href="intrusive.html#intrusive.introduction.tested_compilers">Tested compilers</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/intrusive_vs_nontrusive.html">Intrusive and non-intrusive
    containers</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/intrusive_vs_nontrusive.html#intrusive.intrusive_vs_nontrusive.differences_intrusive_vs_nontrusive">Differences
      between intrusive and non-intrusive containers</a></span></dt>
<dt><span class="section"><a href="intrusive/intrusive_vs_nontrusive.html#intrusive.intrusive_vs_nontrusive.properties_of_intrusive">Properties
      of Boost.Intrusive containers</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/usage.html">How to use Boost.Intrusive</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/usage.html#intrusive.usage.usage_base_hook">Using base hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/usage.html#intrusive.usage.usage_member_hook">Using member hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/usage.html#intrusive.usage.usage_both_hooks">Using both hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/usage.html#intrusive.usage.usage_lifetime">Object lifetime</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/usage_when.html">When to use?</a></span></dt>
<dt><span class="section"><a href="intrusive/concepts_summary.html">Concept summary</a></span></dt>
<dt><span class="section"><a href="intrusive/presenting_containers.html">Presenting Boost.Intrusive
    containers</a></span></dt>
<dt><span class="section"><a href="intrusive/safe_hook.html">Safe hooks</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/safe_hook.html#intrusive.safe_hook.features">Features of the safe mode</a></span></dt>
<dt><span class="section"><a href="intrusive/safe_hook.html#intrusive.safe_hook.configuring">Configuring safe-mode
      assertions</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/auto_unlink_hooks.html">Auto-unlink hooks</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/auto_unlink_hooks.html#intrusive.auto_unlink_hooks.auto_unlink_hooks_what">What's
      an auto-unlink hook?</a></span></dt>
<dt><span class="section"><a href="intrusive/auto_unlink_hooks.html#intrusive.auto_unlink_hooks.auto_unlink_hooks_example">Auto-unlink
      hook example</a></span></dt>
<dt><span class="section"><a href="intrusive/auto_unlink_hooks.html#intrusive.auto_unlink_hooks.auto_unlink_and_constant_time">Auto-unlink
      hooks and containers with constant-time <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/slist.html">Intrusive singly linked list: slist</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/slist.html#intrusive.slist.slist_hooks">slist hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/slist.html#intrusive.slist.slist_container">slist container</a></span></dt>
<dt><span class="section"><a href="intrusive/slist.html#intrusive.slist.slist_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/list.html">Intrusive doubly linked list: list</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/list.html#intrusive.list.list_hooks">list hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/list.html#intrusive.list.list_container">list container</a></span></dt>
<dt><span class="section"><a href="intrusive/list.html#intrusive.list.list_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/set_multiset.html">Intrusive associative containers:
    set, multiset, rbtree</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/set_multiset.html#intrusive.set_multiset.set_multiset_hooks">set, multiset
      and rbtree hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/set_multiset.html#intrusive.set_multiset.set_multiset_containers">set,
      multiset and rbtree containers</a></span></dt>
<dt><span class="section"><a href="intrusive/set_multiset.html#intrusive.set_multiset.set_multiset_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/unordered_set_unordered_multiset.html">Semi-Intrusive
    unordered associative containers: unordered_set, unordered_multiset</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/unordered_set_unordered_multiset.html#intrusive.unordered_set_unordered_multiset.unordered_set_unordered_multiset_performance">unordered_set
      and unordered_multiset performance notes</a></span></dt>
<dt><span class="section"><a href="intrusive/unordered_set_unordered_multiset.html#intrusive.unordered_set_unordered_multiset.unordered_set_unordered_multiset_hooks">unordered_set
      and unordered_multiset hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/unordered_set_unordered_multiset.html#intrusive.unordered_set_unordered_multiset.unordered_set_unordered_multiset_containers">unordered_set
      and unordered_multiset containers</a></span></dt>
<dt><span class="section"><a href="intrusive/unordered_set_unordered_multiset.html#intrusive.unordered_set_unordered_multiset.unordered_set_unordered_multiset_example">Example</a></span></dt>
<dt><span class="section"><a href="intrusive/unordered_set_unordered_multiset.html#intrusive.unordered_set_unordered_multiset.custom_bucket_traits">Custom
      bucket traits</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/map_multimap.html">Map and multimap-like interface
    for associative containers</a></span></dt>
<dt><span class="section"><a href="intrusive/avl_set_multiset.html">Intrusive avl tree based associative
    containers: avl_set, avl_multiset and avltree</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/avl_set_multiset.html#intrusive.avl_set_multiset.avl_set_multiset_hooks">avl_set,
      avl_multiset and avltree hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/avl_set_multiset.html#intrusive.avl_set_multiset.set_multiset_containers">avl_set,
      avl_multiset and avltree containers</a></span></dt>
<dt><span class="section"><a href="intrusive/avl_set_multiset.html#intrusive.avl_set_multiset.avl_set_multiset_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/splay_set_multiset.html">Intrusive splay tree based
    associative containers: splay_set, splay_multiset and , splay_tree</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/splay_set_multiset.html#intrusive.splay_set_multiset.splay_set_multiset_disadvantages">Advantages
      and disadvantages of splay tree based containers</a></span></dt>
<dt><span class="section"><a href="intrusive/splay_set_multiset.html#intrusive.splay_set_multiset.set_multiset_containers">splay_set,
      splay_multiset and splaytree containers</a></span></dt>
<dt><span class="section"><a href="intrusive/splay_set_multiset.html#intrusive.splay_set_multiset.splay_set_multiset_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/sg_set_multiset.html">Intrusive scapegoat tree based
    associative containers: sg_set, sg_multiset and sgtree</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/sg_set_multiset.html#intrusive.sg_set_multiset.sg_set_multiset_containers">sg_set,
      sg_multiset and sgtree containers</a></span></dt>
<dt><span class="section"><a href="intrusive/sg_set_multiset.html#intrusive.sg_set_multiset.sg_set_multiset_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/treap_set_multiset.html">Intrusive treap based associative
    containers: treap_set, treap_multiset and treap</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/treap_set_multiset.html#intrusive.treap_set_multiset.treap_set_multiset_containers">treap_set,
      treap_multiset and treap containers</a></span></dt>
<dt><span class="section"><a href="intrusive/treap_set_multiset.html#intrusive.treap_set_multiset.treap_set_exceptions">Exception
      safety of treap-based intrusive containers</a></span></dt>
<dt><span class="section"><a href="intrusive/treap_set_multiset.html#intrusive.treap_set_multiset.treap_set_multiset_example">Example</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/bst_hooks.html">Binary search tree hooks: bs_set_base_hook
    and bs_set_member_hook</a></span></dt>
<dt><span class="section"><a href="intrusive/advanced_lookups_insertions.html">Advanced lookup
    and insertion functions for associative containers</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/advanced_lookups_insertions.html#intrusive.advanced_lookups_insertions.advanced_lookups">Advanced
      lookups</a></span></dt>
<dt><span class="section"><a href="intrusive/advanced_lookups_insertions.html#intrusive.advanced_lookups_insertions.advanced_insertions">Advanced
      insertions</a></span></dt>
<dt><span class="section"><a href="intrusive/advanced_lookups_insertions.html#intrusive.advanced_lookups_insertions.positional_insertions">Positional
      insertions</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/erasing_and_disposing.html">Erasing and disposing
    values from Boost.Intrusive containers</a></span></dt>
<dt><span class="section"><a href="intrusive/clone_from.html">Cloning Boost.Intrusive containers</a></span></dt>
<dt><span class="section"><a href="intrusive/function_hooks.html">Using function hooks</a></span></dt>
<dt><span class="section"><a href="intrusive/recursive.html">Recursive Boost.Intrusive containers</a></span></dt>
<dt><span class="section"><a href="intrusive/using_smart_pointers.html">Using smart pointers with
    Boost.Intrusive containers</a></span></dt>
<dd><dl><dt><span class="section"><a href="intrusive/using_smart_pointers.html#intrusive.using_smart_pointers.smart_pointers_requirements">Requirements
      for smart pointers compatible with Boost.Intrusive</a></span></dt></dl></dd>
<dt><span class="section"><a href="intrusive/obtaining_iterators_from_values.html">Obtaining iterators
    from values</a></span></dt>
<dt><span class="section"><a href="intrusive/any_hooks.html">Any Hooks: A single hook for any Intrusive
    container</a></span></dt>
<dt><span class="section"><a href="intrusive/concepts.html">Concepts explained</a></span></dt>
<dt><span class="section"><a href="intrusive/node_algorithms.html">Node algorithms with custom
    NodeTraits</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/node_algorithms.html#intrusive.node_algorithms.circular_slist_algorithms">Intrusive
      singly linked list algorithms</a></span></dt>
<dt><span class="section"><a href="intrusive/node_algorithms.html#intrusive.node_algorithms.circular_list_algorithms">Intrusive
      doubly linked list algorithms</a></span></dt>
<dt><span class="section"><a href="intrusive/node_algorithms.html#intrusive.node_algorithms.rbtree_algorithms">Intrusive
      red-black tree algorithms</a></span></dt>
<dt><span class="section"><a href="intrusive/node_algorithms.html#intrusive.node_algorithms.splaytree_algorithms">Intrusive
      splay tree algorithms</a></span></dt>
<dt><span class="section"><a href="intrusive/node_algorithms.html#intrusive.node_algorithms.avltree_algorithms">Intrusive
      avl tree algorithms</a></span></dt>
<dt><span class="section"><a href="intrusive/node_algorithms.html#intrusive.node_algorithms.treap_algorithms">Intrusive
      treap algorithms</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/value_traits.html">Containers with custom ValueTraits</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/value_traits.html#intrusive.value_traits.value_traits_interface">ValueTraits
      interface</a></span></dt>
<dt><span class="section"><a href="intrusive/value_traits.html#intrusive.value_traits.value_traits_example">Custom ValueTraits
      example</a></span></dt>
<dt><span class="section"><a href="intrusive/value_traits.html#intrusive.value_traits.reusing_node_algorithms">Reusing
      node algorithms for different values</a></span></dt>
<dt><span class="section"><a href="intrusive/value_traits.html#intrusive.value_traits.simplifying_value_traits">Simplifying
      value traits definition</a></span></dt>
<dt><span class="section"><a href="intrusive/value_traits.html#intrusive.value_traits.stateful_value_traits">Stateful
      value traits</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/thread_safety.html">Thread safety guarantees</a></span></dt>
<dt><span class="section"><a href="intrusive/boost_intrusive_iterators.html">Boost.Intrusive Iterator
    features</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/boost_intrusive_iterators.html#intrusive.boost_intrusive_iterators.null_forward_iterators">Null
      forward iterators</a></span></dt>
<dt><span class="section"><a href="intrusive/boost_intrusive_iterators.html#intrusive.boost_intrusive_iterators.scary_iterators">Scary
      Iterators</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/equal_range_stability.html">Stability and insertion
    with hint in ordered associative containers with equivalent keys</a></span></dt>
<dt><span class="section"><a href="intrusive/obtaining_same_type_reducing_space.html">Obtaining
    the same types and reducing symbol length</a></span></dt>
<dt><span class="section"><a href="intrusive/design_notes.html">Design Notes</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/design_notes.html#intrusive.design_notes.performance_sensitive">Boost.Intrusive
      in performance sensitive environments</a></span></dt>
<dt><span class="section"><a href="intrusive/design_notes.html#intrusive.design_notes.space_constrained">Boost.Intrusive
      in space constrained environments</a></span></dt>
<dt><span class="section"><a href="intrusive/design_notes.html#intrusive.design_notes.basic_building_block">Boost.Intrusive
      as a basic building block</a></span></dt>
<dt><span class="section"><a href="intrusive/design_notes.html#intrusive.design_notes.extending_intrusive">Extending
      Boost.Intrusive</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/performance.html">Performance</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/performance.html#intrusive.performance.performance_results_push_back">Back
      insertion and destruction</a></span></dt>
<dt><span class="section"><a href="intrusive/performance.html#intrusive.performance.performance_results_reversing">Reversing</a></span></dt>
<dt><span class="section"><a href="intrusive/performance.html#intrusive.performance.performance_results_sorting">Sorting</a></span></dt>
<dt><span class="section"><a href="intrusive/performance.html#intrusive.performance.performance_results_write_access">Write
      access</a></span></dt>
<dt><span class="section"><a href="intrusive/performance.html#intrusive.performance.performance_results_conclusions">Conclusions</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/release_notes.html">Release Notes</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_80_00">Boost
      1.80 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_80_00_0">Boost
      1.80 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_79_00">Boost
      1.79 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_77_00">Boost
      1.77 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_76_00">Boost
      1.76 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_75_00">Boost
      1.75 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_73_00">Boost
      1.73 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_71_00">Boost
      1.71 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_70_00">Boost
      1.70 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_67_00">Boost
      1.67 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_65_00">Boost
      1.65 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_64_00">Boost
      1.64 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_63_00">Boost
      1.63 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_62_00">Boost
      1.62 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_61_00">Boost
      1.61 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_60_00">Boost
      1.60 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_59_00">Boost
      1.59 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_58_00">Boost
      1.58 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_57_00">Boost
      1.57 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_56_00">Boost
      1.56 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_55_00">Boost
      1.55 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_54_00">Boost
      1.54 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_53_00">Boost
      1.53 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_51_00">Boost
      1.51 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_49_00">Boost
      1.49 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_48_00">Boost
      1.48 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_46_00">Boost
      1.46 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_45_00">Boost
      1.45 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_40_00">Boost
      1.40 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_39_00">Boost
      1.39 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_38_00">Boost
      1.38 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_37_00">Boost
      1.37 Release</a></span></dt>
<dt><span class="section"><a href="intrusive/release_notes.html#intrusive.release_notes.release_notes_boost_1_36_00">Boost
      1.36 Release</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="intrusive/references.html">References</a></span></dt>
<dt><span class="section"><a href="intrusive/acknowledgements.html">Acknowledgements</a></span></dt>
<dt><span class="section"><a href="intrusive/index.html">Indexes</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html">Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.any_hook_hpp">Header &lt;boost/intrusive/any_hook.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.avl_set_hpp">Header &lt;boost/intrusive/avl_set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.avl_set_hook_hpp">Header &lt;boost/intrusive/avl_set_hook.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.avltree_hpp">Header &lt;boost/intrusive/avltree.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.avltree_algorithms_hpp">Header &lt;boost/intrusive/avltree_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.bs_set_hpp">Header &lt;boost/intrusive/bs_set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.bs_set_hook_hpp">Header &lt;boost/intrusive/bs_set_hook.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.bstree_hpp">Header &lt;boost/intrusive/bstree.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.bstree_algorithms_hpp">Header &lt;boost/intrusive/bstree_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.circular_list_algorithms_hpp">Header &lt;boost/intrusive/circular_list_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.circular_slist_algorithms_hpp">Header &lt;boost/intrusive/circular_slist_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.derivation_value_traits_hpp">Header &lt;boost/intrusive/derivation_value_traits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.hashtable_hpp">Header &lt;boost/intrusive/hashtable.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.intrusive_fwd_hpp">Header &lt;boost/intrusive/intrusive_fwd.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.linear_slist_algorithms_hpp">Header &lt;boost/intrusive/linear_slist_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.link_mode_hpp">Header &lt;boost/intrusive/link_mode.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.list_hpp">Header &lt;boost/intrusive/list.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.list_hook_hpp">Header &lt;boost/intrusive/list_hook.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.member_value_traits_hpp">Header &lt;boost/intrusive/member_value_traits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.options_hpp">Header &lt;boost/intrusive/options.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.pack_options_hpp">Header &lt;boost/intrusive/pack_options.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.parent_from_member_hpp">Header &lt;boost/intrusive/parent_from_member.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.pointer_plus_bits_hpp">Header &lt;boost/intrusive/pointer_plus_bits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.pointer_rebind_hpp">Header &lt;boost/intrusive/pointer_rebind.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.pointer_traits_hpp">Header &lt;boost/intrusive/pointer_traits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.priority_compare_hpp">Header &lt;boost/intrusive/priority_compare.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.rbtree_hpp">Header &lt;boost/intrusive/rbtree.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.rbtree_algorithms_hpp">Header &lt;boost/intrusive/rbtree_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.set_hpp">Header &lt;boost/intrusive/set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.set_hook_hpp">Header &lt;boost/intrusive/set_hook.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.sg_set_hpp">Header &lt;boost/intrusive/sg_set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.sgtree_hpp">Header &lt;boost/intrusive/sgtree.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.sgtree_algorithms_hpp">Header &lt;boost/intrusive/sgtree_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.slist_hpp">Header &lt;boost/intrusive/slist.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.slist_hook_hpp">Header &lt;boost/intrusive/slist_hook.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.splay_set_hpp">Header &lt;boost/intrusive/splay_set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.splaytree_hpp">Header &lt;boost/intrusive/splaytree.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.splaytree_algorithms_hpp">Header &lt;boost/intrusive/splaytree_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.treap_hpp">Header &lt;boost/intrusive/treap.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.treap_algorithms_hpp">Header &lt;boost/intrusive/treap_algorithms.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.treap_set_hpp">Header &lt;boost/intrusive/treap_set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.trivial_value_traits_hpp">Header &lt;boost/intrusive/trivial_value_traits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.unordered_set_hpp">Header &lt;boost/intrusive/unordered_set.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="intrusive/reference.html#header.boost.intrusive.unordered_set_hook_hpp">Header &lt;boost/intrusive/unordered_set_hook.hpp&gt;</a></span></dt>
</dl></dd>
</dl>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="intrusive.introduction"></a><a class="link" href="intrusive.html#intrusive.introduction" title="Introduction">Introduction</a>
</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="intrusive.html#intrusive.introduction.introduction_presenting">Presenting
      Boost.Intrusive</a></span></dt>
<dt><span class="section"><a href="intrusive.html#intrusive.introduction.introduction_building_intrusive">Building
      Boost.Intrusive</a></span></dt>
<dt><span class="section"><a href="intrusive.html#intrusive.introduction.tested_compilers">Tested compilers</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="intrusive.introduction.introduction_presenting"></a><a class="link" href="intrusive.html#intrusive.introduction.introduction_presenting" title="Presenting Boost.Intrusive">Presenting
      Boost.Intrusive</a>
</h3></div></div></div>
<p>
        <span class="bold"><strong>Boost.Intrusive</strong></span> is a library presenting
        some intrusive containers to the world of C++. Intrusive containers are special
        containers that offer <a class="link" href="intrusive/performance.html" title="Performance">better performance</a>
        and exception safety guarantees than non-intrusive containers (like STL containers).
      </p>
<p>
        The performance benefits of intrusive containers makes them ideal as a building
        block to efficiently construct complex containers like multi-index containers
        or to design high performance code like memory allocation algorithms.
      </p>
<p>
        While intrusive containers were and are widely used in C, they became more
        and more forgotten in C++ due to the presence of the standard containers
        which don't support intrusive techniques.<span class="bold"><strong>Boost.Intrusive</strong></span>
        wants to push intrusive containers usage encapsulating the implementation
        in STL-like interfaces. Hence anyone familiar with standard containers can
        easily use <span class="bold"><strong>Boost.Intrusive</strong></span>.
      </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="intrusive.introduction.introduction_building_intrusive"></a><a class="link" href="intrusive.html#intrusive.introduction.introduction_building_intrusive" title="Building Boost.Intrusive">Building
      Boost.Intrusive</a>
</h3></div></div></div>
<p>
        There is no need to compile anything to use <span class="bold"><strong>Boost.Intrusive</strong></span>,
        since it's a header only library. Just include your Boost header directory
        in your compiler include path.
      </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="intrusive.introduction.tested_compilers"></a><a class="link" href="intrusive.html#intrusive.introduction.tested_compilers" title="Tested compilers">Tested compilers</a>
</h3></div></div></div>
<p>
        <span class="bold"><strong>Boost.Intrusive</strong></span> has been tested on the following
        compilers/platforms:
      </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
            Visual C++ &gt;= 7.1.
          </li>
<li class="listitem">
            GCC &gt;= 4.1.
          </li>
</ul></div>
<div class="warning"><table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../doc/src/images/warning.png"></td>
<th align="left">Warning</th>
</tr>
<tr><td align="left" valign="top"><p>
          GCC &lt; 4.3 and MSVC &lt; 9.0 are deprecated and will be removed in the
          next version.
        </p></td></tr>
</table></div>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: December 08, 2022 at 01:12:23 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost/interprocess/xsi_shared_memory.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="libraries.html"><img src="../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="intrusive/intrusive_vs_nontrusive.html"><img src="../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>