Imported Upstream version 1.72.0
[platform/upstream/boost.git] / doc / html / container.html
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=US-ASCII">
5 <title>Chapter&#160;9.&#160;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&#160;I.&#160;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&#160;9.&#160;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 &#169; 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_72_00">Boost
188       1.72 Release</a></span></dt>
189 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_71_00">Boost
190       1.71 Release</a></span></dt>
191 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_70_00">Boost
192       1.70 Release</a></span></dt>
193 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_69_00">Boost
194       1.69 Release</a></span></dt>
195 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_68_00">Boost
196       1.68 Release</a></span></dt>
197 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_67_00">Boost
198       1.67 Release</a></span></dt>
199 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_66_00">Boost
200       1.66 Release</a></span></dt>
201 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_65_00">Boost
202       1.65 Release</a></span></dt>
203 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_64_00">Boost
204       1.64 Release</a></span></dt>
205 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_63_00">Boost
206       1.63 Release</a></span></dt>
207 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_62_00">Boost
208       1.62 Release</a></span></dt>
209 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_61_00">Boost
210       1.61 Release</a></span></dt>
211 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_60_00">Boost
212       1.60 Release</a></span></dt>
213 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_59_00">Boost
214       1.59 Release</a></span></dt>
215 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_58_00">Boost
216       1.58 Release</a></span></dt>
217 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_57_00">Boost
218       1.57 Release</a></span></dt>
219 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_56_00">Boost
220       1.56 Release</a></span></dt>
221 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_55_00">Boost
222       1.55 Release</a></span></dt>
223 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_54_00">Boost
224       1.54 Release</a></span></dt>
225 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_53_00">Boost
226       1.53 Release</a></span></dt>
227 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_52_00">Boost
228       1.52 Release</a></span></dt>
229 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_51_00">Boost
230       1.51 Release</a></span></dt>
231 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_50_00">Boost
232       1.50 Release</a></span></dt>
233 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_49_00">Boost
234       1.49 Release</a></span></dt>
235 <dt><span class="section"><a href="container/release_notes.html#container.release_notes.release_notes_boost_1_48_00">Boost
236       1.48 Release</a></span></dt>
237 </dl></dd>
238 </dl>
239 </div>
240 <div class="section">
241 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
242 <a name="container.intro"></a><a class="link" href="container.html#container.intro" title="Introduction">Introduction</a>
243 </h2></div></div></div>
244 <div class="toc"><dl class="toc">
245 <dt><span class="section"><a href="container.html#container.intro.introduction_building_container">Building
246       Boost.Container</a></span></dt>
247 <dt><span class="section"><a href="container.html#container.intro.tested_compilers">Tested compilers</a></span></dt>
248 </dl></div>
249 <p>
250       <span class="bold"><strong>Boost.Container</strong></span> library implements several
251       well-known containers, including STL containers. The aim of the library is
252       to offer advanced features not present in standard containers or to offer the
253       latest standard draft features for compilers that don't comply with the latest
254       C++ standard.
255     </p>
256 <p>
257       In short, what does <span class="bold"><strong>Boost.Container</strong></span> offer?
258     </p>
259 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
260 <li class="listitem">
261           Emplacement and move semantics are implemented, including emulation for
262           pre-C++11 compilers.
263         </li>
264 <li class="listitem">
265           Polymorphic allocators and memory resources, including implementation and
266           emulation for pre-C++17 compilers
267         </li>
268 <li class="listitem">
269           New advanced features (e.g. recursive containers) and configurability options
270           <a class="link" href="container/configurable_containers.html" title="Extended functionality: Configurable containers">container.configurable_containers</a>
271           for containers.
272         </li>
273 <li class="listitem">
274           Containers support stateful allocators and are compatible with <span class="bold"><strong>Boost.Interprocess</strong></span> (they can be safely placed in
275           shared memory).
276         </li>
277 <li class="listitem">
278           Users obtain a more uniform performance across all plataforms, including
279           <a class="link" href="container/main_features.html#container.main_features.scary_iterators" title="SCARY iterators">SCARY iterators</a>.
280         </li>
281 <li class="listitem">
282           The library offers new useful containers:
283           <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
284 <li class="listitem">
285                 <code class="computeroutput"><a class="link" href="boost/container/flat_map.html" title="Class template flat_map">flat_map</a></code>,
286                 <code class="computeroutput"><a class="link" href="boost/container/flat_set.html" title="Class template flat_set">flat_set</a></code>,
287                 <code class="computeroutput"><a class="link" href="boost/container/flat_multimap.html" title="Class template flat_multimap">flat_multimap</a></code>
288                 and <code class="computeroutput"><a class="link" href="boost/container/flat_multiset.html" title="Class template flat_multiset">flat_multiset</a></code>:
289                 drop-in replacements for standard associative containers but more
290                 memory friendly and with faster searches.
291               </li>
292 <li class="listitem">
293                 <code class="computeroutput"><a class="link" href="boost/container/stable_vector.html" title="Class template stable_vector">stable_vector</a></code>:
294                 a std::list and std::vector hybrid container: vector-like random-access
295                 iterators and list-like iterator stability in insertions and erasures.
296               </li>
297 <li class="listitem">
298                 <code class="computeroutput"><a class="link" href="boost/container/static_vector.html" title="Class template static_vector">static_vector </a></code>:
299                 a vector-like container that internally embeds (statically allocates)
300                 all needed memory up to the maximum capacity. Maximum capacity can't
301                 be increased and it's specified at compile time.
302               </li>
303 <li class="listitem">
304                 <code class="computeroutput"><a class="link" href="boost/container/small_vector.html" title="Class template small_vector">small_vector </a></code>:
305                 a vector-like container that internally embeds (statically allocates)
306                 a minimum amount of memory, but dynamically allocates elements when
307                 capacity has to be increased. This minimum capacity is specified
308                 at compile time.
309               </li>
310 <li class="listitem">
311                 <code class="computeroutput"><a class="link" href="boost/container/slist.html" title="Class template slist">slist</a></code>: the classic
312                 pre-standard singly linked list implementation offering constant-time
313                 <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>.
314                 Note that C++11 <code class="computeroutput"><span class="identifier">forward_list</span></code>
315                 has no <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span></code>.
316               </li>
317 </ul></div>
318         </li>
319 </ul></div>
320 <div class="section">
321 <div class="titlepage"><div><div><h3 class="title">
322 <a name="container.intro.introduction_building_container"></a><a class="link" href="container.html#container.intro.introduction_building_container" title="Building Boost.Container">Building
323       Boost.Container</a>
324 </h3></div></div></div>
325 <p>
326         There is no need to compile <span class="bold"><strong>Boost.Container</strong></span>,
327         since it's a header-only library, just include your Boost header directory
328         in your compiler include path <span class="bold"><strong>except if you use</strong></span>:
329       </p>
330 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
331 <li class="listitem">
332             <a class="link" href="container/extended_allocators.html" title="Extended functionality: Extended allocators">Extended Allocators</a>
333           </li>
334 <li class="listitem">
335             Some <a class="link" href="container/cpp_conformance.html#container.cpp_conformance.polymorphic_memory_resources" title="Polymorphic Memory Resources">Polymorphic
336             Memory Resources</a> classes.
337           </li>
338 </ul></div>
339 <p>
340         Those exceptions are are implemented as a separately compiled library, so
341         in those cases you must install binaries in a location that can be found
342         by your linker. If you followed the <a href="http://www.boost.org/doc/libs/release/more/getting_started/index.html" target="_top">Boost
343         Getting Started</a> instructions, that's already been done for you.
344       </p>
345 </div>
346 <div class="section">
347 <div class="titlepage"><div><div><h3 class="title">
348 <a name="container.intro.tested_compilers"></a><a class="link" href="container.html#container.intro.tested_compilers" title="Tested compilers">Tested compilers</a>
349 </h3></div></div></div>
350 <p>
351         <span class="bold"><strong>Boost.Container</strong></span> requires a decent C++98
352         compatibility. Some compilers known to work are:
353       </p>
354 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
355 <li class="listitem">
356             Visual C++ &gt;= 7.1.
357           </li>
358 <li class="listitem">
359             GCC &gt;= 4.1.
360           </li>
361 </ul></div>
362 <div class="warning"><table border="0" summary="Warning">
363 <tr>
364 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../doc/src/images/warning.png"></td>
365 <th align="left">Warning</th>
366 </tr>
367 <tr><td align="left" valign="top"><p>
368           GCC &lt; 4.3 and MSVC &lt; 9.0 are deprecated and will be removed in the
369           next version.
370         </p></td></tr>
371 </table></div>
372 </div>
373 </div>
374 </div>
375 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
376 <td align="left"><p><small>Last revised: December 10, 2019 at 00:26:55 GMT</small></p></td>
377 <td align="right"><div class="copyright-footer"></div></td>
378 </tr></table>
379 <hr>
380 <div class="spirit-nav">
381 <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>
382 </div>
383 </body>
384 </html>