• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Chapter 9. Boost.Container</title>
6<link rel="stylesheet" href="../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="libraries.html" title="Part I. The Boost C++ Libraries (BoostBook Subset)">
10<link rel="prev" href="circular_buffer/s14.html" title="Index">
11<link rel="next" href="container/main_features.html" title="Main features">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
16<td align="center"><a href="../../index.html">Home</a></td>
17<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="circular_buffer/s14.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="container/main_features.html"><img src="../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="chapter">
27<div class="titlepage"><div>
28<div><h2 class="title">
29<a name="container"></a>Chapter 9. Boost.Container</h2></div>
30<div><div class="author"><h3 class="author">
31<span class="firstname">Ion</span> <span class="surname">Gaztanaga</span>
32</h3></div></div>
33<div><p class="copyright">Copyright © 2009-2018 Ion Gaztanaga</p></div>
34<div><div class="legalnotice">
35<a name="container.legal"></a><p>
36        Distributed under the Boost Software License, Version 1.0. (See accompanying
37        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>)
38      </p>
39</div></div>
40</div></div>
41<div class="toc">
42<p><b>Table of Contents</b></p>
43<dl class="toc">
44<dt><span class="section"><a href="container.html#container.intro">Introduction</a></span></dt>
45<dd><dl>
46<dt><span class="section"><a href="container.html#container.intro.introduction_building_container">Building
47      Boost.Container</a></span></dt>
48<dt><span class="section"><a href="container.html#container.intro.tested_compilers">Tested compilers</a></span></dt>
49</dl></dd>
50<dt><span class="section"><a href="container/main_features.html">Main features</a></span></dt>
51<dd><dl>
52<dt><span class="section"><a href="container/main_features.html#container.main_features.move_emplace">Efficient insertion</a></span></dt>
53<dt><span class="section"><a href="container/main_features.html#container.main_features.containers_of_incomplete_types">Containers
54      of Incomplete Types</a></span></dt>
55<dt><span class="section"><a href="container/main_features.html#container.main_features.scary_iterators">SCARY iterators</a></span></dt>
56<dt><span class="section"><a href="container/main_features.html#container.main_features.other_features">Other features</a></span></dt>
57</dl></dd>
58<dt><span class="section"><a href="container/exception_handling.html">Boost.Container and C++ exceptions</a></span></dt>
59<dt><span class="section"><a href="container/non_standard_containers.html">Non-standard containers</a></span></dt>
60<dd><dl>
61<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.stable_vector"><span class="emphasis"><em>stable_vector</em></span></a></span></dt>
62<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.flat_xxx"><span class="emphasis"><em>flat_(multi)map/set</em></span>
63      associative containers</a></span></dt>
64<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.slist"><span class="emphasis"><em>slist</em></span></a></span></dt>
65<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.static_vector"><span class="emphasis"><em>static_vector</em></span></a></span></dt>
66<dt><span class="section"><a href="container/non_standard_containers.html#container.non_standard_containers.small_vector"><span class="emphasis"><em>small_vector</em></span></a></span></dt>
67</dl></dd>
68<dt><span class="section"><a href="container/extended_functionality.html">Extended functionality:
69    Basic extensions</a></span></dt>
70<dd><dl>
71<dt><span class="section"><a href="container/extended_functionality.html#container.extended_functionality.default_initialialization">Default
72      initialization for vector-like containers</a></span></dt>
73<dt><span class="section"><a href="container/extended_functionality.html#container.extended_functionality.ordered_range_insertion">Ordered
74      range insertion for associative containers (<span class="emphasis"><em>ordered_unique_range</em></span>,
75      <span class="emphasis"><em>ordered_range</em></span>) </a></span></dt>
76<dt><span class="section"><a href="container/extended_functionality.html#container.extended_functionality.constant_time_range_splice">Constant-time
77      range splice for <code class="computeroutput"><span class="special">(</span><span class="identifier">s</span><span class="special">)</span><span class="identifier">list</span></code></a></span></dt>
78</dl></dd>
79<dt><span class="section"><a href="container/configurable_containers.html">Extended functionality:
80    Configurable containers</a></span></dt>
81<dd><dl>
82<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_tree_based_associative_containers">Configurable
83      tree-based associative ordered containers</a></span></dt>
84<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_vectors">Configurable
85      vectors</a></span></dt>
86<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_deques">Configurable
87      deques</a></span></dt>
88<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_static_vectors">Configurable
89      static vector</a></span></dt>
90<dt><span class="section"><a href="container/configurable_containers.html#container.configurable_containers.configurable_small_vectors">Configurable
91      small vector</a></span></dt>
92</dl></dd>
93<dt><span class="section"><a href="container/extended_allocators.html">Extended functionality:
94    Extended allocators</a></span></dt>
95<dt><span class="section"><a href="container/cpp_conformance.html">C++11/C++14/C++17 Conformance</a></span></dt>
96<dd><dl>
97<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.move_emplace">Move and Emplace</a></span></dt>
98<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.alloc_traits_move_traits">Stateful
99      allocators</a></span></dt>
100<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.scoped_allocator">Scoped allocators</a></span></dt>
101<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.insertion_hints">Insertion
102      hints in associative containers and preserving insertion ordering for elements
103      with equivalent keys</a></span></dt>
104<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.initializer_lists">Initializer
105      lists</a></span></dt>
106<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.null_iterators">Null Forward
107      Iterators</a></span></dt>
108<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.polymorphic_memory_resources">Polymorphic
109      Memory Resources </a></span></dt>
110<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.forward_list"><code class="computeroutput"><span class="identifier">forward_list</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code></a></span></dt>
111<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.vector_exception_guarantees"><code class="computeroutput"><span class="identifier">vector</span></code> vs. <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>
112      exception guarantees</a></span></dt>
113<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.container_const_reference_parameters">Parameter
114      taken by const reference that can be changed</a></span></dt>
115<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.Vector_bool"><code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code> specialization</a></span></dt>
116<dt><span class="section"><a href="container/cpp_conformance.html#container.cpp_conformance.non_standard_memset_initialization">Non-standard
117      value initialization using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">memset</span></code></a></span></dt>
118</dl></dd>
119<dt><span class="section"><a href="container/known_issues.html">Known Issues</a></span></dt>
120<dd><dl><dt><span class="section"><a href="container/known_issues.html#container.known_issues.move_emulation_limitations">Move
121      emulation limitations in C++03 compilers</a></span></dt></dl></dd>
122<dt><span class="section"><a href="container/history_and_reasons.html">History and reasons to use
123    Boost.Container</a></span></dt>
124<dd><dl>
125<dt><span class="section"><a href="container/history_and_reasons.html#container.history_and_reasons.boost_container_history">Boost.Container
126      history</a></span></dt>
127<dt><span class="section"><a href="container/history_and_reasons.html#container.history_and_reasons.Why_boost_container">Why
128      Boost.Container?</a></span></dt>
129</dl></dd>
130<dt><span class="section"><a href="container/index.html">Indexes</a></span></dt>
131<dd><dl>
132<dt><span class="section"><a href="container/index.html#id-1.3.10.13.2">Class Index</a></span></dt>
133<dt><span class="section"><a href="container/index.html#id-1.3.10.13.3">Typedef Index</a></span></dt>
134<dt><span class="section"><a href="container/index.html#id-1.3.10.13.4">Function Index</a></span></dt>
135</dl></dd>
136<dt><span class="section"><a href="boost_container_header_reference.html">Boost.Container Header Reference</a></span></dt>
137<dd><dl>
138<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.adaptive_pool_hpp">Header &lt;boost/container/adaptive_pool.hpp&gt;</a></span></dt>
139<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.allocator_hpp">Header &lt;boost/container/allocator.hpp&gt;</a></span></dt>
140<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.allocator_traits_hpp">Header &lt;boost/container/allocator_traits.hpp&gt;</a></span></dt>
141<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.container_fwd_hpp">Header &lt;boost/container/container_fwd.hpp&gt;</a></span></dt>
142<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.deque_hpp">Header &lt;boost/container/deque.hpp&gt;</a></span></dt>
143<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.deque_hpp">Header &lt;boost/container/pmr/deque.hpp&gt;</a></span></dt>
144<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.flat_map_hpp">Header &lt;boost/container/flat_map.hpp&gt;</a></span></dt>
145<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.flat_map_hpp">Header &lt;boost/container/pmr/flat_map.hpp&gt;</a></span></dt>
146<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.flat_set_hpp">Header &lt;boost/container/flat_set.hpp&gt;</a></span></dt>
147<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.flat_set_hpp">Header &lt;boost/container/pmr/flat_set.hpp&gt;</a></span></dt>
148<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.list_hpp">Header &lt;boost/container/list.hpp&gt;</a></span></dt>
149<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.list_hpp">Header &lt;boost/container/pmr/list.hpp&gt;</a></span></dt>
150<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.map_hpp">Header &lt;boost/container/map.hpp&gt;</a></span></dt>
151<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.map_hpp">Header &lt;boost/container/pmr/map.hpp&gt;</a></span></dt>
152<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.new_allocator_hpp">Header &lt;boost/container/new_allocator.hpp&gt;</a></span></dt>
153<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.node_allocator_hpp">Header &lt;boost/container/node_allocator.hpp&gt;</a></span></dt>
154<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.node_handle_hpp">Header &lt;boost/container/node_handle.hpp&gt;</a></span></dt>
155<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.options_hpp">Header &lt;boost/container/options.hpp&gt;</a></span></dt>
156<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.global_resource_hpp">Header &lt;boost/container/pmr/global_resource.hpp&gt;</a></span></dt>
157<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.memory_resource_hpp">Header &lt;boost/container/pmr/memory_resource.hpp&gt;</a></span></dt>
158<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.monotonic_buffer_resource_hpp">Header &lt;boost/container/pmr/monotonic_buffer_resource.hpp&gt;</a></span></dt>
159<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.polymorphic_allocator_hpp">Header &lt;boost/container/pmr/polymorphic_allocator.hpp&gt;</a></span></dt>
160<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.pool_options_hpp">Header &lt;boost/container/pmr/pool_options.hpp&gt;</a></span></dt>
161<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.resource_adaptor_hpp">Header &lt;boost/container/pmr/resource_adaptor.hpp&gt;</a></span></dt>
162<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.synchronized_pool_resource_hpp">Header &lt;boost/container/pmr/synchronized_pool_resource.hpp&gt;</a></span></dt>
163<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.unsynchronized_pool_resource_hpp">Header &lt;boost/container/pmr/unsynchronized_pool_resource.hpp&gt;</a></span></dt>
164<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.scoped_allocator_hpp">Header &lt;boost/container/scoped_allocator.hpp&gt;</a></span></dt>
165<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.scoped_allocator_fwd_hpp">Header &lt;boost/container/scoped_allocator_fwd.hpp&gt;</a></span></dt>
166<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.set_hpp">Header &lt;boost/container/set.hpp&gt;</a></span></dt>
167<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.set_hpp">Header &lt;boost/container/pmr/set.hpp&gt;</a></span></dt>
168<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.slist_hpp">Header &lt;boost/container/slist.hpp&gt;</a></span></dt>
169<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.slist_hpp">Header &lt;boost/container/pmr/slist.hpp&gt;</a></span></dt>
170<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.small_vector_hpp">Header &lt;boost/container/small_vector.hpp&gt;</a></span></dt>
171<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.small_vector_hpp">Header &lt;boost/container/pmr/small_vector.hpp&gt;</a></span></dt>
172<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.stable_vector_hpp">Header &lt;boost/container/stable_vector.hpp&gt;</a></span></dt>
173<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.stable_vector_hpp">Header &lt;boost/container/pmr/stable_vector.hpp&gt;</a></span></dt>
174<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.static_vector_hpp">Header &lt;boost/container/static_vector.hpp&gt;</a></span></dt>
175<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.string_hpp">Header &lt;boost/container/string.hpp&gt;</a></span></dt>
176<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.string_hpp">Header &lt;boost/container/pmr/string.hpp&gt;</a></span></dt>
177<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.throw_exception_hpp">Header &lt;boost/container/throw_exception.hpp&gt;</a></span></dt>
178<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.uses_allocator_hpp">Header &lt;boost/container/uses_allocator.hpp&gt;</a></span></dt>
179<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.uses_allocator_fwd_hpp">Header &lt;boost/container/uses_allocator_fwd.hpp&gt;</a></span></dt>
180<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.vector_hpp">Header &lt;boost/container/vector.hpp&gt;</a></span></dt>
181<dt><span class="section"><a href="boost_container_header_reference.html#header.boost.container.pmr.vector_hpp">Header &lt;boost/container/pmr/vector.hpp&gt;</a></span></dt>
182</dl></dd>
183<dt><span class="section"><a href="container/acknowledgements_notes.html">Acknowledgements, notes
184    and links</a></span></dt>
185<dt><span class="section"><a href="container/release_notes.html">Release Notes</a></span></dt>
186<dd><dl>
187<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_74_00">Boost
188      1.74 Release</a></span></dt>
189<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_72_00">Boost
190      1.72 Release</a></span></dt>
191<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_71_00">Boost
192      1.71 Release</a></span></dt>
193<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_70_00">Boost
194      1.70 Release</a></span></dt>
195<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_69_00">Boost
196      1.69 Release</a></span></dt>
197<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_68_00">Boost
198      1.68 Release</a></span></dt>
199<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_67_00">Boost
200      1.67 Release</a></span></dt>
201<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_66_00">Boost
202      1.66 Release</a></span></dt>
203<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_65_00">Boost
204      1.65 Release</a></span></dt>
205<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_64_00">Boost
206      1.64 Release</a></span></dt>
207<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_63_00">Boost
208      1.63 Release</a></span></dt>
209<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_62_00">Boost
210      1.62 Release</a></span></dt>
211<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_61_00">Boost
212      1.61 Release</a></span></dt>
213<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_60_00">Boost
214      1.60 Release</a></span></dt>
215<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_59_00">Boost
216      1.59 Release</a></span></dt>
217<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_58_00">Boost
218      1.58 Release</a></span></dt>
219<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_57_00">Boost
220      1.57 Release</a></span></dt>
221<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_56_00">Boost
222      1.56 Release</a></span></dt>
223<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_55_00">Boost
224      1.55 Release</a></span></dt>
225<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_54_00">Boost
226      1.54 Release</a></span></dt>
227<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_53_00">Boost
228      1.53 Release</a></span></dt>
229<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_52_00">Boost
230      1.52 Release</a></span></dt>
231<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_51_00">Boost
232      1.51 Release</a></span></dt>
233<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_50_00">Boost
234      1.50 Release</a></span></dt>
235<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_49_00">Boost
236      1.49 Release</a></span></dt>
237<dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_48_00">Boost
238      1.48 Release</a></span></dt>
239</dl></dd>
240</dl>
241</div>
242<div class="section">
243<div class="titlepage"><div><div><h2 class="title" style="clear: both">
244<a name="container.intro"></a><a class="link" href="container.html#container.intro" title="Introduction">Introduction</a>
245</h2></div></div></div>
246<div class="toc"><dl class="toc">
247<dt><span class="section"><a href="container.html#container.intro.introduction_building_container">Building
248      Boost.Container</a></span></dt>
249<dt><span class="section"><a href="container.html#container.intro.tested_compilers">Tested compilers</a></span></dt>
250</dl></div>
251<p>
252      <span class="bold"><strong>Boost.Container</strong></span> library implements several
253      well-known containers, including STL containers. The aim of the library is
254      to offer advanced features not present in standard containers or to offer the
255      latest standard draft features for compilers that don't comply with the latest
256      C++ standard.
257    </p>
258<p>
259      In short, what does <span class="bold"><strong>Boost.Container</strong></span> offer?
260    </p>
261<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
262<li class="listitem">
263          Emplacement and move semantics are implemented, including emulation for
264          pre-C++11 compilers.
265        </li>
266<li class="listitem">
267          Polymorphic allocators and memory resources, including implementation and
268          emulation for pre-C++17 compilers
269        </li>
270<li class="listitem">
271          New advanced features (e.g. recursive containers) and configurability options
272          <a class="link" href="container/configurable_containers.html" title="Extended functionality: Configurable containers">container.configurable_containers</a>
273          for containers.
274        </li>
275<li class="listitem">
276          Containers support stateful allocators and are compatible with <span class="bold"><strong>Boost.Interprocess</strong></span> (they can be safely placed in
277          shared memory).
278        </li>
279<li class="listitem">
280          Users obtain a more uniform performance across all plataforms, including
281          <a class="link" href="container/main_features.html#container.main_features.scary_iterators" title="SCARY iterators">SCARY iterators</a>.
282        </li>
283<li class="listitem">
284          The library offers new useful containers:
285          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
286<li class="listitem">
287                <code class="computeroutput"><a class="link" href="boost/container/flat_map.html" title="Class template flat_map">flat_map</a></code>,
288                <code class="computeroutput"><a class="link" href="boost/container/flat_set.html" title="Class template flat_set">flat_set</a></code>,
289                <code class="computeroutput"><a class="link" href="boost/container/flat_multimap.html" title="Class template flat_multimap">flat_multimap</a></code>
290                and <code class="computeroutput"><a class="link" href="boost/container/flat_multiset.html" title="Class template flat_multiset">flat_multiset</a></code>:
291                drop-in replacements for standard associative containers but more
292                memory friendly and with faster searches.
293              </li>
294<li class="listitem">
295                <code class="computeroutput"><a class="link" href="boost/container/stable_vector.html" title="Class template stable_vector">stable_vector</a></code>:
296                a std::list and std::vector hybrid container: vector-like random-access
297                iterators and list-like iterator stability in insertions and erasures.
298              </li>
299<li class="listitem">
300                <code class="computeroutput"><a class="link" href="boost/container/static_vector.html" title="Class template static_vector">static_vector </a></code>:
301                a vector-like container that internally embeds (statically allocates)
302                all needed memory up to the maximum capacity. Maximum capacity can't
303                be increased and it's specified at compile time.
304              </li>
305<li class="listitem">
306                <code class="computeroutput"><a class="link" href="boost/container/small_vector.html" title="Class template small_vector">small_vector </a></code>:
307                a vector-like container that internally embeds (statically allocates)
308                a minimum amount of memory, but dynamically allocates elements when
309                capacity has to be increased. This minimum capacity is specified
310                at compile time.
311              </li>
312<li class="listitem">
313                <code class="computeroutput"><a class="link" href="boost/container/slist.html" title="Class template slist">slist</a></code>: the classic
314                pre-standard singly linked list implementation offering constant-time
315                <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>.
316                Note that C++11 <code class="computeroutput"><span class="identifier">forward_list</span></code>
317                has no <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>.
318              </li>
319</ul></div>
320        </li>
321</ul></div>
322<div class="section">
323<div class="titlepage"><div><div><h3 class="title">
324<a name="container.intro.introduction_building_container"></a><a class="link" href="container.html#container.intro.introduction_building_container" title="Building Boost.Container">Building
325      Boost.Container</a>
326</h3></div></div></div>
327<p>
328        There is no need to compile <span class="bold"><strong>Boost.Container</strong></span>,
329        since it's a header-only library, just include your Boost header directory
330        in your compiler include path <span class="bold"><strong>except if you use</strong></span>:
331      </p>
332<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
333<li class="listitem">
334            <a class="link" href="container/extended_allocators.html" title="Extended functionality: Extended allocators">Extended Allocators</a>
335          </li>
336<li class="listitem">
337            Some <a class="link" href="container/cpp_conformance.html#container.cpp_conformance.polymorphic_memory_resources" title="Polymorphic Memory Resources">Polymorphic
338            Memory Resources</a> classes.
339          </li>
340</ul></div>
341<p>
342        Those exceptions are are implemented as a separately compiled library, so
343        in those cases you must install binaries in a location that can be found
344        by your linker. If you followed the <a href="http://www.boost.org/doc/libs/release/more/getting_started/index.html" target="_top">Boost
345        Getting Started</a> instructions, that's already been done for you.
346      </p>
347</div>
348<div class="section">
349<div class="titlepage"><div><div><h3 class="title">
350<a name="container.intro.tested_compilers"></a><a class="link" href="container.html#container.intro.tested_compilers" title="Tested compilers">Tested compilers</a>
351</h3></div></div></div>
352<p>
353        <span class="bold"><strong>Boost.Container</strong></span> requires a decent C++03
354        compatibility. Some compilers known to work are:
355      </p>
356<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
357<li class="listitem">
358            Visual C++ &gt;= 10.0
359          </li>
360<li class="listitem">
361            GCC &gt;= 4.8
362          </li>
363</ul></div>
364</div>
365</div>
366</div>
367<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
368<td align="left"><p><small>Last revised: August 11, 2020 at 15:03:47 GMT</small></p></td>
369<td align="right"><div class="copyright-footer"></div></td>
370</tr></table>
371<hr>
372<div class="spirit-nav">
373<a accesskey="p" href="circular_buffer/s14.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="container/main_features.html"><img src="../../doc/src/images/next.png" alt="Next"></a>
374</div>
375</body>
376</html>
377