Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / bimap / doc / html / boost_bimap / reference / list_of_reference.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>list_of Reference</title>
5 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Bimap">
8 <link rel="up" href="../reference.html" title="Reference">
9 <link rel="prev" href="unordered_set_of_reference.html" title="unordered_set_of Reference">
10 <link rel="next" href="vector_of_reference.html" title="vector_of Reference">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="unordered_set_of_reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="vector_of_reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_bimap.reference.list_of_reference"></a><a class="link" href="list_of_reference.html" title="list_of Reference">list_of Reference</a>
28 </h3></div></div></div>
29 <div class="toc"><dl class="toc">
30 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.header__boost_bimap_list_of_hpp__synopsis">Header
31         "boost/bimap/list_of.hpp" synopsis</a></span></dt>
32 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views">list_of
33         Views</a></span></dt>
34 <dd><dl>
35 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.complexity_signature">Complexity
36           signature</a></span></dt>
37 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.instantiation_types">Instantiation
38           types</a></span></dt>
39 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment">Constructors,
40           copy and assignment</a></span></dt>
41 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.capacity_operations">Capacity
42           operations</a></span></dt>
43 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.modifiers">Modifiers</a></span></dt>
44 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.list_operations">List
45           operations</a></span></dt>
46 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations">Rearrange
47           operations</a></span></dt>
48 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.serialization">Serialization</a></span></dt>
49 </dl></dd>
50 </dl></div>
51 <div class="section">
52 <div class="titlepage"><div><div><h4 class="title">
53 <a name="boost_bimap.reference.list_of_reference.header__boost_bimap_list_of_hpp__synopsis"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.header__boost_bimap_list_of_hpp__synopsis" title='Header "boost/bimap/list_of.hpp" synopsis'>Header
54         "boost/bimap/list_of.hpp" synopsis</a>
55 </h4></div></div></div>
56 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
57 <span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
58
59
60 <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyType</span> <span class="special">&gt;</span>
61 <span class="keyword">struct</span> <span class="identifier">list_of</span><span class="special">;</span>
62
63 <span class="keyword">struct</span> <span class="identifier">list_of_relation</span><span class="special">;</span>
64
65
66 <span class="special">}</span> <span class="comment">// namespace bimap</span>
67 <span class="special">}</span> <span class="comment">// namespace boost</span>
68 </pre>
69 </div>
70 <div class="section">
71 <div class="titlepage"><div><div><h4 class="title">
72 <a name="boost_bimap.reference.list_of_reference.list_of_views"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views" title="list_of Views">list_of
73         Views</a>
74 </h4></div></div></div>
75 <div class="toc"><dl class="toc">
76 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.complexity_signature">Complexity
77           signature</a></span></dt>
78 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.instantiation_types">Instantiation
79           types</a></span></dt>
80 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment">Constructors,
81           copy and assignment</a></span></dt>
82 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.capacity_operations">Capacity
83           operations</a></span></dt>
84 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.modifiers">Modifiers</a></span></dt>
85 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.list_operations">List
86           operations</a></span></dt>
87 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations">Rearrange
88           operations</a></span></dt>
89 <dt><span class="section"><a href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.serialization">Serialization</a></span></dt>
90 </dl></div>
91 <p>
92           A list_of set view is a std::list signature compatible interface to the
93           underlying heap of elements contained in a <code class="computeroutput"><span class="identifier">bimap</span></code>.
94         </p>
95 <p>
96           If you look the bimap by a side, you will use a map view and if you looked
97           it as a whole you will be using a set view.
98         </p>
99 <p>
100           Elements in a list_of view are by default sorted according to their order
101           of insertion: this means that new elements inserted through a different
102           view of the <code class="computeroutput"><span class="identifier">bimap</span></code> are appended
103           to the end of the list_of view. Additionally, the view allows for free
104           reordering of elements in the same vein as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>
105           does. Validity of iterators and references to elements is preserved in
106           all operations.
107         </p>
108 <p>
109           There are a number of differences with respect to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lists</span></code>:
110         </p>
111 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
112 <li class="listitem">
113               list_of views are not <a href="https://www.boost.org/sgi/stl/Assignable.html" target="_top">Assignable</a>
114               (like any other view.)
115             </li>
116 <li class="listitem">
117               Unlike as in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>, insertions into a list_of view
118               may fail due to clashings with other views. This alters the semantics
119               of the operations provided with respect to their analogues in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>.
120             </li>
121 <li class="listitem">
122               Elements in a list_of view are not mutable, and can only be changed
123               by means of <code class="computeroutput"><span class="identifier">replace</span></code>
124               and <code class="computeroutput"><span class="identifier">modify</span></code> member functions.
125             </li>
126 </ul></div>
127 <p>
128           Having these restrictions into account, list_of views are models of <a href="https://www.boost.org/sgi/stl/ReversibleContainer.html" target="_top">Reversible
129           Container</a>, <a href="https://www.boost.org/sgi/stl/FrontInsertionSequence.html" target="_top">Front
130           Insertion Sequence</a> and <a href="https://www.boost.org/sgi/stl/BackInsertionSequence.html" target="_top">Back
131           Insertion Sequence</a>. We only provide descriptions of those types
132           and operations that are either not present in the concepts modeled or do
133           not exactly conform to the requirements for these types of containers.
134         </p>
135 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
136 <span class="keyword">namespace</span> <span class="identifier">bimaps</span> <span class="special">{</span>
137 <span class="keyword">namespace</span> <span class="identifier">views</span> <span class="special">{</span>
138
139 <span class="keyword">template</span><span class="special">&lt;</span> <span class="emphasis"><em>-implementation defined parameter list-</em></span> <span class="special">&gt;</span>
140 <span class="keyword">class</span> <span class="emphasis"><em>-implementation defined view name-</em></span>
141 <span class="special">{</span>
142     <span class="keyword">public</span><span class="special">:</span>
143
144     <span class="comment">// types</span>
145
146     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">value_type</span><span class="special">;</span>
147     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">allocator_type</span><span class="special">;</span>
148     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">reference</span><span class="special">;</span>
149     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_reference</span><span class="special">;</span>
150     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">iterator</span><span class="special">;</span>
151     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_iterator</span><span class="special">;</span>
152     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">size_type</span><span class="special">;</span>
153     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">difference_type</span><span class="special">;</span>
154     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">pointer</span><span class="special">;</span>
155     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_pointer</span><span class="special">;</span>
156     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
157     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
158
159     <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">info_type</span><span class="special">;</span>
160
161     <span class="comment">// construct/copy/destroy</span>
162
163     <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
164
165     <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">&gt;</span>
166     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_assign_iterator_iterator">assign</a><span class="special">(</span><span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">);</span>
167
168     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_assign_size_value">assign</a><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
169
170     <span class="identifier">allocator_type</span> <span class="identifier">get_allocator</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
171
172     <span class="comment">// iterators</span>
173
174     <span class="identifier">iterator</span>               <span class="identifier">begin</span><span class="special">();</span>
175     <span class="identifier">const_iterator</span>         <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
176
177     <span class="identifier">iterator</span>               <span class="identifier">end</span><span class="special">();</span>
178     <span class="identifier">const_iterator</span>         <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
179
180     <span class="identifier">reverse_iterator</span>       <span class="identifier">rbegin</span><span class="special">();</span>
181     <span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
182
183     <span class="identifier">reverse_iterator</span>       <span class="identifier">rend</span><span class="special">();</span>
184     <span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
185
186     <span class="comment">// capacity</span>
187
188     <span class="keyword">bool</span>      <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
189
190     <span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
191
192     <span class="identifier">size_type</span> <span class="identifier">max_size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
193
194     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_resize_size_value">resize</a><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">value_type</span><span class="special">());</span>
195
196     <span class="comment">// access</span>
197
198     <span class="identifier">const_reference</span> <span class="identifier">front</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
199     <span class="identifier">const_reference</span> <span class="identifier">back</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
200
201     <span class="comment">// modifiers</span>
202
203     <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">&gt;</span> <a class="link" href="list_of_reference.html#reference_list_of_push_front_value">push_front</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
204     <span class="keyword">void</span>                     <span class="identifier">pop_front</span><span class="special">();</span>
205
206     <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">&gt;</span> <a class="link" href="list_of_reference.html#reference_list_of_push_back_value">push_back</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
207     <span class="keyword">void</span>                     <span class="identifier">pop_back</span><span class="special">();</span>
208
209     <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">&gt;</span> <a class="link" href="list_of_reference.html#reference_list_of_insert_iterator_value">insert</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
210
211     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_insert_iterator_size_value">insert</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
212
213     <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">&gt;</span>
214     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_insert_iterator_iterator_iterator">insert</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">);</span>
215
216     <span class="identifier">iterator</span> <a class="link" href="list_of_reference.html#reference_list_of_erase_iterator">erase</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">);</span>
217     <span class="identifier">iterator</span> <a class="link" href="list_of_reference.html#reference_list_of_erase_iterator_iterator">erase</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
218
219     <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_replace_iterator_value">replace</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
220
221     <span class="comment">// Only in map views</span>
222     <span class="comment">// {</span>
223
224       <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">key_type</span><span class="special">;</span>
225       <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">mapped_type</span><span class="special">;</span>
226       <span class="keyword">typedef</span> <span class="emphasis"><em>-unspecified-</em></span> <span class="identifier">mapped_type</span><span class="special">;</span> <span class="comment">// Equal to mapped_type</span>
227
228       <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span> <span class="special">&gt;</span>
229       <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_replace_key_iterator_key">replace_key</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleKey</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
230
231       <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">&gt;</span>
232       <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_replace_data_iterator_data">replace_data</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleData</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
233
234       <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyModifier</span> <span class="special">&gt;</span>
235       <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_modify_key_iterator_modifier">modify_key</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">KeyModifier</span> <span class="identifier">mod</span><span class="special">);</span>
236
237       <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">DataModifier</span> <span class="special">&gt;</span>
238       <span class="keyword">bool</span> <a class="link" href="list_of_reference.html#reference_list_of_modify_data_iterator_modifier">modify_data</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">DataModifier</span> <span class="identifier">mod</span><span class="special">);</span>
239
240     <span class="comment">// }</span>
241
242
243     <span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
244
245     <span class="comment">// list operations</span>
246
247     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_splice_iterator_this">splice</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
248     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_splice_iterator_this_iterator">splice</a><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
249     <span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span>
250         <span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
251
252     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_remove_value">remove</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
253
254     <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Predicate</span> <span class="special">&gt;</span>
255     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_remove_if_predicate">remove_if</a><span class="special">(</span><span class="identifier">Predicate</span> <span class="identifier">pred</span><span class="special">);</span>
256
257     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_unique">unique</a><span class="special">();</span>
258
259     <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span> <span class="special">&gt;</span>
260     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_unique_predicate">unique</a><span class="special">(</span><span class="identifier">BinaryPredicate</span> <span class="identifier">binary_pred</span><span class="special">);</span>
261
262     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_merge_this">merge</a><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
263
264     <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
265     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_merge_this_compare">merge</a><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span><span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
266
267     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_sort">sort</a><span class="special">();</span>
268
269     <span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
270     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_sort_compare">sort</a><span class="special">(</span><span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
271
272     <span class="keyword">void</span> <a class="link" href="list_of_reference.html#reference_list_of_reverse">reverse</a><span class="special">();</span>
273
274     <span class="comment">// rearrange operations</span>
275
276     <span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
277     <span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
278
279 <span class="special">}</span>
280
281 <span class="comment">// view comparison</span>
282
283 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
284 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
285 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
286 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
287 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
288 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">);</span>
289
290 <span class="special">}</span> <span class="comment">// namespace views</span>
291 <span class="special">}</span> <span class="comment">// namespace bimap</span>
292 <span class="special">}</span> <span class="comment">// namespace boost</span>
293 </pre>
294 <p>
295           In the case of a <code class="computeroutput"><span class="identifier">bimap</span><span class="special">&lt;</span> <span class="identifier">list_of</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;,</span> <span class="special">...</span> <span class="special">&gt;</span></code>
296         </p>
297 <p>
298           In the set view:
299         </p>
300 <pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">relation</span><span class="special">&lt;</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span> <span class="identifier">key_type</span><span class="special">;</span>
301 <span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">relation</span><span class="special">&lt;</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span>
302 </pre>
303 <p>
304           In the left map view:
305         </p>
306 <pre class="programlisting"><span class="keyword">typedef</span>  <span class="identifier">Left</span>  <span class="identifier">key_type</span><span class="special">;</span>
307 <span class="keyword">typedef</span>  <span class="special">...</span>   <span class="identifier">mapped_type</span><span class="special">;</span>
308
309 <span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">Left</span><span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span>
310 </pre>
311 <p>
312           In the right map view:
313         </p>
314 <pre class="programlisting"><span class="keyword">typedef</span>  <span class="special">...</span>  <span class="identifier">key_type</span><span class="special">;</span>
315 <span class="keyword">typedef</span>  <span class="identifier">Left</span> <span class="identifier">mapped_type</span><span class="special">;</span>
316
317 <span class="keyword">typedef</span> <span class="identifier">signature</span><span class="special">-</span><span class="identifier">compatible</span> <span class="identifier">with</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="special">...</span> <span class="special">,</span> <span class="identifier">Left</span> <span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span>
318 </pre>
319 <div class="section">
320 <div class="titlepage"><div><div><h5 class="title">
321 <a name="boost_bimap.reference.list_of_reference.list_of_views.complexity_signature"></a><a name="list_of_complexity_signature"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.complexity_signature" title="Complexity signature">Complexity
322           signature</a>
323 </h5></div></div></div>
324 <p>
325             Here and in the descriptions of operations of <code class="computeroutput"><span class="identifier">list_of</span></code>
326             views, we adopt the scheme outlined in the <a class="link" href="bimap_reference.html#complexity_signature_explanation">complexity
327             signature section</a>. The complexity signature of a <code class="computeroutput"><span class="identifier">list_of</span></code> view is:
328           </p>
329 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
330 <li class="listitem">
331                 copying: <code class="computeroutput"><span class="identifier">c</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">n</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>,
332               </li>
333 <li class="listitem">
334                 insertion: <code class="computeroutput"><span class="identifier">i</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span></code>
335                 (constant),
336               </li>
337 <li class="listitem">
338                 hinted insertion: <code class="computeroutput"><span class="identifier">h</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span></code> (constant),
339               </li>
340 <li class="listitem">
341                 deletion: <code class="computeroutput"><span class="identifier">d</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span></code>
342                 (constant),
343               </li>
344 <li class="listitem">
345                 replacement: <code class="computeroutput"><span class="identifier">r</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span></code>
346                 (constant),
347               </li>
348 <li class="listitem">
349                 modifying: <code class="computeroutput"><span class="identifier">m</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span></code>
350                 (constant).
351               </li>
352 </ul></div>
353 </div>
354 <div class="section">
355 <div class="titlepage"><div><div><h5 class="title">
356 <a name="boost_bimap.reference.list_of_reference.list_of_views.instantiation_types"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.instantiation_types" title="Instantiation types">Instantiation
357           types</a>
358 </h5></div></div></div>
359 <p>
360             <code class="computeroutput"><span class="identifier">list_of</span></code> views are instantiated
361             internally to <code class="computeroutput"><span class="identifier">bimap</span></code> and
362             specified by means of the collection type specifiers and the bimap itself.
363             Instantiations are dependent on the following types:
364           </p>
365 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
366 <li class="listitem">
367                 <code class="computeroutput"><span class="identifier">Value</span></code> from <code class="computeroutput"><span class="identifier">list_of</span></code>,
368               </li>
369 <li class="listitem">
370                 <code class="computeroutput"><span class="identifier">Allocator</span></code> from <code class="computeroutput"><span class="identifier">bimap</span></code>,
371               </li>
372 </ul></div>
373 </div>
374 <div class="section">
375 <div class="titlepage"><div><div><h5 class="title">
376 <a name="boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.constructors__copy_and_assignment" title="Constructors, copy and assignment">Constructors,
377           copy and assignment</a>
378 </h5></div></div></div>
379 <p>
380             As explained in the view concepts section, views do not have public constructors
381             or destructors. Assignment, on the other hand, is provided.
382           </p>
383 <pre class="programlisting"><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
384 </pre>
385 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
386 <li class="listitem">
387                 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="identifier">a</span>
388                 <span class="special">=</span> <span class="identifier">b</span><span class="special">;</span></code> where a and b are the <code class="computeroutput"><span class="identifier">bimap</span></code> objects to which <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
389                 and <code class="computeroutput"><span class="identifier">x</span></code> belong, respectively.
390               </li>
391 <li class="listitem">
392                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
393               </li>
394 </ul></div>
395 <a name="reference_list_of_assign_iterator_iterator"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span> <span class="special">&gt;</span>
396 <span class="keyword">void</span> <span class="identifier">assign</span><span class="special">(</span><span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">);</span>
397 </pre>
398 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
399 <li class="listitem">
400                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">InputIterator</span></code>
401                 is a model of <a href="https://www.boost.org/sgi/stl/InputIterator.html" target="_top">Input
402                 Iterator</a> over elements of type <code class="computeroutput"><span class="identifier">value_type</span></code>
403                 or a type convertible to <code class="computeroutput"><span class="identifier">value_type</span></code>.
404                 first and last are not iterators into any views of the <code class="computeroutput"><span class="identifier">bimap</span></code> to which this view belongs.
405                 <code class="computeroutput"><span class="identifier">last</span></code> is reachable
406                 from <code class="computeroutput"><span class="identifier">first</span></code>.
407               </li>
408 <li class="listitem">
409                 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="identifier">clear</span><span class="special">();</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">end</span><span class="special">(),</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">);</span></code>
410               </li>
411 </ul></div>
412 <a name="reference_list_of_assign_size_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">assign</span><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
413 </pre>
414 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
415                 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="identifier">clear</span><span class="special">();</span> <span class="keyword">for</span><span class="special">(</span><span class="identifier">size_type</span>
416                 <span class="identifier">i</span> <span class="special">=</span>
417                 <span class="number">0</span><span class="special">;</span>
418                 <span class="identifier">i</span> <span class="special">&lt;</span>
419                 <span class="identifier">n</span> <span class="special">;</span>
420                 <span class="special">++</span><span class="identifier">n</span><span class="special">)</span> <span class="identifier">push_back</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span></code>
421               </li></ul></div>
422 </div>
423 <div class="section">
424 <div class="titlepage"><div><div><h5 class="title">
425 <a name="boost_bimap.reference.list_of_reference.list_of_views.capacity_operations"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.capacity_operations" title="Capacity operations">Capacity
426           operations</a>
427 </h5></div></div></div>
428 <a name="reference_list_of_resize_size_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">resize</span><span class="special">(</span><span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">=</span><span class="identifier">value_type</span><span class="special">());</span>
429 </pre>
430 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
431 <li class="listitem">
432                 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="keyword">if</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">&gt;</span> <span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">end</span><span class="special">(),</span>
433                 <span class="identifier">n</span> <span class="special">-</span>
434                 <span class="identifier">size</span><span class="special">(),</span>
435                 <span class="identifier">x</span><span class="special">);</span></code>
436                 <code class="computeroutput"><span class="keyword">else</span> <span class="keyword">if</span><span class="special">(</span> <span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">size</span><span class="special">()</span> <span class="special">)</span> <span class="special">{</span></code> <code class="computeroutput"> <span class="identifier">iterator</span>
437                 <span class="identifier">it</span> <span class="special">=</span>
438                 <span class="identifier">begin</span><span class="special">();</span></code>
439                 <code class="computeroutput"> <span class="identifier">std</span><span class="special">::</span><span class="identifier">advance</span><span class="special">(</span><span class="identifier">it</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span></code>
440                 <code class="computeroutput"> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">,</span> <span class="identifier">end</span><span class="special">());</span></code>
441                 <code class="computeroutput"><span class="special">}</span></code>
442               </li>
443 <li class="listitem">
444                 <span class="bold"><strong>Note:</strong></span> If an expansion is requested,
445                 the size of the view is not guaranteed to be n after this operation
446                 (other views may ban insertions.)
447               </li>
448 </ul></div>
449 </div>
450 <div class="section">
451 <div class="titlepage"><div><div><h5 class="title">
452 <a name="boost_bimap.reference.list_of_reference.list_of_views.modifiers"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.modifiers" title="Modifiers">Modifiers</a>
453 </h5></div></div></div>
454 <a name="reference_list_of_push_front_value"></a><pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">push_front</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
455 </pre>
456 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
457 <li class="listitem">
458                 <span class="bold"><strong>Effects:</strong></span> Inserts <code class="computeroutput"><span class="identifier">x</span></code>
459                 at the beginning of the sequence if no other views of the <code class="computeroutput"><span class="identifier">bimap</span></code> bans the insertion.
460               </li>
461 <li class="listitem">
462                 <span class="bold"><strong>Returns:</strong></span> The return value is a pair
463                 <code class="computeroutput"><span class="identifier">p</span></code>. <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
464                 if and only if insertion took place. On successful insertion, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to the element inserted;
465                 otherwise, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to an element that
466                 caused the insertion to be banned. Note that more than one element
467                 can be causing insertion not to be allowed.
468               </li>
469 <li class="listitem">
470                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
471                 O(I(n)).
472               </li>
473 <li class="listitem">
474                 <span class="bold"><strong>Exception safety:</strong></span> Strong.
475               </li>
476 </ul></div>
477 <a name="reference_list_of_push_back_value"></a><pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">push_back</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
478 </pre>
479 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
480 <li class="listitem">
481                 <span class="bold"><strong>Effects:</strong></span> Inserts <code class="computeroutput"><span class="identifier">x</span></code>
482                 at the end of the sequence if no other views of the <code class="computeroutput"><span class="identifier">bimap</span></code> bans the insertion.
483               </li>
484 <li class="listitem">
485                 <span class="bold"><strong>Returns:</strong></span> The return value is a pair
486                 <code class="computeroutput"><span class="identifier">p</span></code>. <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
487                 if and only if insertion took place. On successful insertion, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to the element inserted;
488                 otherwise, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to an element that
489                 caused the insertion to be banned. Note that more than one element
490                 can be causing insertion not to be allowed.
491               </li>
492 <li class="listitem">
493                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
494                 O(I(n)).
495               </li>
496 <li class="listitem">
497                 <span class="bold"><strong>Exception safety:</strong></span> Strong.
498               </li>
499 </ul></div>
500 <a name="reference_list_of_insert_iterator_value"></a><pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
501 </pre>
502 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
503 <li class="listitem">
504                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
505                 is a valid <code class="computeroutput"><span class="identifier">iterator</span></code>
506                 of the view.
507               </li>
508 <li class="listitem">
509                 <span class="bold"><strong>Effects:</strong></span> Inserts <code class="computeroutput"><span class="identifier">x</span></code>
510                 before position if insertion is allowed by all other views of the
511                 <code class="computeroutput"><span class="identifier">bimap</span></code>.
512               </li>
513 <li class="listitem">
514                 <span class="bold"><strong>Returns:</strong></span> The return value is a pair
515                 <code class="computeroutput"><span class="identifier">p</span></code>. <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
516                 if and only if insertion took place. On successful insertion, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to the element inserted;
517                 otherwise, <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span></code> points to an element that
518                 caused the insertion to be banned. Note that more than one element
519                 can be causing insertion not to be allowed.
520               </li>
521 <li class="listitem">
522                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
523                 O(I(n)).
524               </li>
525 <li class="listitem">
526                 <span class="bold"><strong>Exception safety:</strong></span> Strong.
527               </li>
528 </ul></div>
529 <a name="reference_list_of_insert_iterator_size_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
530 </pre>
531 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
532 <li class="listitem">
533                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
534                 is a valid <code class="computeroutput"><span class="identifier">iterator</span></code>
535                 of the view.
536               </li>
537 <li class="listitem">
538                 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="keyword">for</span><span class="special">(</span><span class="identifier">size_type</span>
539                 <span class="identifier">i</span> <span class="special">=</span>
540                 <span class="number">0</span><span class="special">;</span>
541                 <span class="identifier">i</span> <span class="special">&lt;</span>
542                 <span class="identifier">n</span><span class="special">;</span>
543                 <span class="special">++</span><span class="identifier">i</span><span class="special">)</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">position</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span></code>
544               </li>
545 </ul></div>
546 <a name="reference_list_of_insert_iterator_iterator_iterator"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
547 <span class="keyword">void</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span><span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span><span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">);</span>
548 </pre>
549 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
550 <li class="listitem">
551                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
552                 is a valid <code class="computeroutput"><span class="identifier">iterator</span></code>
553                 of the view. <code class="computeroutput"><span class="identifier">InputIterator</span></code>
554                 is a model of <a href="https://www.boost.org/sgi/stl/InputIterator.html" target="_top">Input
555                 Iterator</a> over elements of type <code class="computeroutput"><span class="identifier">value_type</span></code>.
556                 <code class="computeroutput"><span class="identifier">first</span></code> and <code class="computeroutput"><span class="identifier">last</span></code> are not iterators into any
557                 view of the <code class="computeroutput"><span class="identifier">bimap</span></code>
558                 to which this view belongs. <code class="computeroutput"><span class="identifier">last</span></code>
559                 is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
560               </li>
561 <li class="listitem">
562                 <span class="bold"><strong>Effects: </strong></span> <code class="computeroutput"><span class="keyword">while</span><span class="special">(</span><span class="identifier">first</span>
563                 <span class="special">!=</span> <span class="identifier">last</span><span class="special">)</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">position</span><span class="special">,</span> <span class="special">*</span><span class="identifier">first</span><span class="special">++);</span></code>
564               </li>
565 <li class="listitem">
566                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
567                 O(m*I(n+m)), where m is the number of elements in <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
568               </li>
569 <li class="listitem">
570                 <span class="bold"><strong>Exception safety:</strong></span> Basic.
571               </li>
572 </ul></div>
573 <a name="reference_list_of_erase_iterator"></a><pre class="programlisting"><span class="identifier">iterator</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">);</span>
574 </pre>
575 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
576 <li class="listitem">
577                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
578                 is a valid dereferenceable <code class="computeroutput"><span class="identifier">iterator</span></code>
579                 of the view.
580               </li>
581 <li class="listitem">
582                 <span class="bold"><strong>Effects:</strong></span> Deletes the element pointed
583                 to by <code class="computeroutput"><span class="identifier">position</span></code>.
584               </li>
585 <li class="listitem">
586                 <span class="bold"><strong>Returns:</strong></span> An iterator pointing to
587                 the element immediately following the one that was deleted, or <code class="computeroutput"><span class="identifier">end</span><span class="special">()</span></code>
588                 if no such element exists.
589               </li>
590 <li class="listitem">
591                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
592                 O(D(n)).
593               </li>
594 <li class="listitem">
595                 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
596               </li>
597 </ul></div>
598 <a name="reference_list_of_erase_iterator_iterator"></a><pre class="programlisting"><span class="identifier">iterator</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
599 </pre>
600 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
601 <li class="listitem">
602                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>
603                 is a valid range of the view.
604               </li>
605 <li class="listitem">
606                 <span class="bold"><strong>Effects:</strong></span> Deletes the elements in
607                 <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
608               </li>
609 <li class="listitem">
610                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="identifier">last</span></code>.
611               </li>
612 <li class="listitem">
613                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
614                 O(m*D(n)), where m is the number of elements in <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
615               </li>
616 <li class="listitem">
617                 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
618               </li>
619 </ul></div>
620 <a name="reference_list_of_replace_iterator_value"></a><pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">replace</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
621 </pre>
622 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
623 <li class="listitem">
624                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
625                 is a valid dereferenceable iterator of the view.
626               </li>
627 <li class="listitem">
628                 <span class="bold"><strong>Effects:</strong></span> Assigns the value <code class="computeroutput"><span class="identifier">x</span></code> to the element pointed to by
629                 <code class="computeroutput"><span class="identifier">position</span></code> into the
630                 <code class="computeroutput"><span class="identifier">bimap</span></code> to which the
631                 view belongs if replacing is allowed by all other views of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
632               </li>
633 <li class="listitem">
634                 <span class="bold"><strong>Postconditions:</strong></span> Validity of <code class="computeroutput"><span class="identifier">position</span></code> is preserved in all cases.
635               </li>
636 <li class="listitem">
637                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
638                 if the replacement took place, <code class="computeroutput"><span class="keyword">false</span></code>
639                 otherwise.
640               </li>
641 <li class="listitem">
642                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
643                 O(R(n)).
644               </li>
645 <li class="listitem">
646                 <span class="bold"><strong>Exception safety:</strong></span> Strong. If an
647                 exception is thrown by some user-provided operation the <code class="computeroutput"><span class="identifier">bimap</span></code> to which the view belongs
648                 remains in its original state.
649               </li>
650 </ul></div>
651 <a name="reference_list_of_replace_key_iterator_key"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleKey</span> <span class="special">&gt;</span>
652 <span class="keyword">bool</span> <span class="identifier">replace_key</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleKey</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
653 </pre>
654 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
655 <li class="listitem">
656                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
657                 is a valid dereferenceable iterator of the set view. <code class="computeroutput"><span class="identifier">CompatibleKey</span></code> can be assigned to
658                 <code class="computeroutput"><span class="identifier">key_type</span></code>.
659               </li>
660 <li class="listitem">
661                 <span class="bold"><strong>Effects:</strong></span> Assigns the value <code class="computeroutput"><span class="identifier">x</span></code> to <code class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">first</span></code>,
662                 where <code class="computeroutput"><span class="identifier">e</span></code> is the element
663                 pointed to by <code class="computeroutput"><span class="identifier">position</span></code>
664                 into the <code class="computeroutput"><span class="identifier">bimap</span></code> to
665                 which the set view belongs if replacing is allowed by all other views
666                 of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
667               </li>
668 <li class="listitem">
669                 <span class="bold"><strong>Postconditions:</strong></span> Validity of position
670                 is preserved in all cases.
671               </li>
672 <li class="listitem">
673                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
674                 if the replacement took place, <code class="computeroutput"><span class="keyword">false</span></code>
675                 otherwise.
676               </li>
677 <li class="listitem">
678                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
679                 O(R(n)).
680               </li>
681 <li class="listitem">
682                 <span class="bold"><strong>Exception safety:</strong></span> Strong. If an
683                 exception is thrown by some user-provided operation, the <code class="computeroutput"><span class="identifier">bimap</span></code> to which the set view belongs
684                 remains in its original state.
685               </li>
686 </ul></div>
687 <a name="reference_list_of_replace_data_iterator_data"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">CompatibleData</span> <span class="special">&gt;</span>
688 <span class="keyword">bool</span> <span class="identifier">replace_data</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CompatibleData</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
689 </pre>
690 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
691 <li class="listitem">
692                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
693                 is a valid dereferenceable iterator of the set view. <code class="computeroutput"><span class="identifier">CompatibleKey</span></code> can be assigned to
694                 <code class="computeroutput"><span class="identifier">mapped_type</span></code>.
695               </li>
696 <li class="listitem">
697                 <span class="bold"><strong>Effects:</strong></span> Assigns the value <code class="computeroutput"><span class="identifier">x</span></code> to <code class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">second</span></code>,
698                 where <code class="computeroutput"><span class="identifier">e</span></code> is the element
699                 pointed to by <code class="computeroutput"><span class="identifier">position</span></code>
700                 into the <code class="computeroutput"><span class="identifier">bimap</span></code> to
701                 which the set view belongs if replacing is allowed by all other views
702                 of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
703               </li>
704 <li class="listitem">
705                 <span class="bold"><strong>Postconditions:</strong></span> Validity of position
706                 is preserved in all cases.
707               </li>
708 <li class="listitem">
709                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
710                 if the replacement took place, <code class="computeroutput"><span class="keyword">false</span></code>
711                 otherwise.
712               </li>
713 <li class="listitem">
714                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
715                 O(R(n)).
716               </li>
717 <li class="listitem">
718                 <span class="bold"><strong>Exception safety:</strong></span> Strong. If an
719                 exception is thrown by some user-provided operation, the <code class="computeroutput"><span class="identifier">bimap</span></code> to which the set view belongs
720                 remains in its original state.
721               </li>
722 </ul></div>
723 <a name="reference_list_of_modify_key_iterator_modifier"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">KeyModifier</span> <span class="special">&gt;</span>
724 <span class="keyword">bool</span> <span class="identifier">modify_key</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">KeyModifier</span> <span class="identifier">mod</span><span class="special">);</span>
725 </pre>
726 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
727 <li class="listitem">
728                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">KeyModifier</span></code>
729                 is a model of <a href="https://www.boost.org/sgi/stl/UnaryFunction.html" target="_top">Unary
730                 Function</a> accepting arguments of type: <code class="computeroutput"><span class="identifier">key_type</span><span class="special">&amp;</span></code>; <code class="computeroutput"><span class="identifier">position</span></code>
731                 is a valid dereferenceable iterator of the view.
732               </li>
733 <li class="listitem">
734                 <span class="bold"><strong>Effects:</strong></span> Calls <code class="computeroutput"><span class="identifier">mod</span><span class="special">(</span><span class="identifier">e</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span></code> where e is the element pointed to
735                 by position and rearranges <code class="computeroutput"><span class="special">*</span><span class="identifier">position</span></code> into all the views of
736                 the <code class="computeroutput"><span class="identifier">bimap</span></code>. If the
737                 rearrangement fails, the element is erased. It is successful if the
738                 rearrangement is allowed by all other views of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
739               </li>
740 <li class="listitem">
741                 <span class="bold"><strong>Postconditions:</strong></span> Validity of <code class="computeroutput"><span class="identifier">position</span></code> is preserved if the operation
742                 succeeds.
743               </li>
744 <li class="listitem">
745                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
746                 if the operation succeeded, <code class="computeroutput"><span class="keyword">false</span></code>
747                 otherwise.
748               </li>
749 <li class="listitem">
750                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
751                 O(M(n)).
752               </li>
753 <li class="listitem">
754                 <span class="bold"><strong>Exception safety:</strong></span> Basic. If an exception
755                 is thrown by some user-provided operation (except possibly mod),
756                 then the element pointed to by position is erased.
757               </li>
758 <li class="listitem">
759                 <span class="bold"><strong>Note:</strong></span> Only provided for map views.
760               </li>
761 </ul></div>
762 <a name="reference_list_of_modify_data_iterator_modifier"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">DataModifier</span> <span class="special">&gt;</span>
763 <span class="keyword">bool</span> <span class="identifier">modify_data</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">DataModifier</span> <span class="identifier">mod</span><span class="special">);</span>
764 </pre>
765 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
766 <li class="listitem">
767                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">DataModifier</span></code>
768                 is a model of <a href="https://www.boost.org/sgi/stl/UnaryFunction.html" target="_top">Unary
769                 Function</a> accepting arguments of type: <code class="computeroutput"><span class="identifier">mapped_type</span><span class="special">&amp;</span></code>; <code class="computeroutput"><span class="identifier">position</span></code>
770                 is a valid dereferenceable iterator of the view.
771               </li>
772 <li class="listitem">
773                 <span class="bold"><strong>Effects:</strong></span> Calls <code class="computeroutput"><span class="identifier">mod</span><span class="special">(</span><span class="identifier">e</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span></code> where e is the element pointed to
774                 by position and rearranges <code class="computeroutput"><span class="special">*</span><span class="identifier">position</span></code> into all the views of
775                 the <code class="computeroutput"><span class="identifier">bimap</span></code>. If the
776                 rearrangement fails, the element is erased. It is successful if the
777                 rearrangement is allowed by all other views of the <code class="computeroutput"><span class="identifier">bimap</span></code>.
778               </li>
779 <li class="listitem">
780                 <span class="bold"><strong>Postconditions:</strong></span> Validity of <code class="computeroutput"><span class="identifier">position</span></code> is preserved if the operation
781                 succeeds.
782               </li>
783 <li class="listitem">
784                 <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">true</span></code>
785                 if the operation succeeded, <code class="computeroutput"><span class="keyword">false</span></code>
786                 otherwise.
787               </li>
788 <li class="listitem">
789                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
790                 O(M(n)).
791               </li>
792 <li class="listitem">
793                 <span class="bold"><strong>Exception safety:</strong></span> Basic. If an exception
794                 is thrown by some user-provided operation (except possibly mod),
795                 then the element pointed to by position is erased.
796               </li>
797 <li class="listitem">
798                 <span class="bold"><strong>Note:</strong></span> Only provided for map views.
799               </li>
800 </ul></div>
801 </div>
802 <div class="section">
803 <div class="titlepage"><div><div><h5 class="title">
804 <a name="boost_bimap.reference.list_of_reference.list_of_views.list_operations"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.list_operations" title="List operations">List
805           operations</a>
806 </h5></div></div></div>
807 <p>
808             <code class="computeroutput"><span class="identifier">list_of</span></code> views provide
809             the full set of list operations found in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>;
810             the semantics of these member functions, however, differ from that of
811             <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code> in some cases as insertions might
812             not succeed due to banning by other views. Similarly, the complexity
813             of the operations may depend on the other views belonging to the same
814             <code class="computeroutput"><span class="identifier">bimap</span></code>.
815           </p>
816 <a name="reference_list_of_splice_iterator_this"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
817 </pre>
818 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
819 <li class="listitem">
820                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
821                 is a valid iterator of the view. <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">!=</span><span class="keyword">this</span></code>.
822               </li>
823 <li class="listitem">
824                 <span class="bold"><strong>Effects:</strong></span> Inserts the contents of
825                 <code class="computeroutput"><span class="identifier">x</span></code> before position,
826                 in the same order as they were in <code class="computeroutput"><span class="identifier">x</span></code>.
827                 Those elements successfully inserted are erased from <code class="computeroutput"><span class="identifier">x</span></code>.
828               </li>
829 <li class="listitem">
830                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
831                 O(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*I(n+<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)
832                 + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*D(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)).
833               </li>
834 <li class="listitem">
835                 <span class="bold"><strong>Exception safety:</strong></span> Basic.
836               </li>
837 </ul></div>
838 <a name="reference_list_of_splice_iterator_this_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span><span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
839 </pre>
840 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
841 <li class="listitem">
842                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
843                 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">i</span></code>
844                 is a valid dereferenceable iterator <code class="computeroutput"><span class="identifier">x</span></code>.
845               </li>
846 <li class="listitem">
847                 <span class="bold"><strong>Effects:</strong></span> Inserts the element pointed
848                 to by <code class="computeroutput"><span class="identifier">i</span></code> before position:
849                 if insertion is successful, the element is erased from <code class="computeroutput"><span class="identifier">x</span></code>. In the special case <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
850                 no copy or deletion is performed, and the operation is always successful.
851                 If <code class="computeroutput"><span class="identifier">position</span><span class="special">==</span><span class="identifier">i</span></code>, no operation is performed.
852               </li>
853 <li class="listitem">
854                 <span class="bold"><strong>Postconditions:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
855                 no iterator or reference is invalidated.
856               </li>
857 <li class="listitem">
858                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
859                 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
860                 constant; otherwise O(I(n) + D(n)).
861               </li>
862 <li class="listitem">
863                 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
864                 nothrow; otherwise, strong.
865               </li>
866 </ul></div>
867 <a name="reference_list_of_splice_iterator_this_iterator_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
868 </pre>
869 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
870 <li class="listitem">
871                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
872                 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">first</span></code>
873                 and <code class="computeroutput"><span class="identifier">last</span></code> are valid
874                 iterators of <code class="computeroutput"><span class="identifier">x</span></code>. last
875                 is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
876                 position is not in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
877               </li>
878 <li class="listitem">
879                 <span class="bold"><strong>Effects:</strong></span> For each element in the
880                 range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>, insertion is tried before position;
881                 if the operation is successful, the element is erased from x. In
882                 the special case <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>, no copy or deletion is performed,
883                 and insertions are always successful.
884               </li>
885 <li class="listitem">
886                 <span class="bold"><strong>Postconditions:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
887                 no iterator or reference is invalidated.
888               </li>
889 <li class="listitem">
890                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
891                 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
892                 constant; otherwise O(m*I(n+m) + m*D(x.size())) where m is the number
893                 of elements in <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
894               </li>
895 <li class="listitem">
896                 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
897                 nothrow; otherwise, basic.
898               </li>
899 </ul></div>
900 <a name="reference_list_of_remove_value"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">remove</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">);</span>
901 </pre>
902 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
903 <li class="listitem">
904                 <span class="bold"><strong>Effects:</strong></span> Erases all elements of
905                 the view which compare equal to <code class="computeroutput"><span class="identifier">value</span></code>.
906               </li>
907 <li class="listitem">
908                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
909                 O(n + m*D(n)), where m is the number of elements erased.
910               </li>
911 <li class="listitem">
912                 <span class="bold"><strong>Exception safety:</strong></span> Basic.
913               </li>
914 </ul></div>
915 <a name="reference_list_of_remove_if_predicate"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Predicate</span> <span class="special">&gt;</span>
916 <span class="keyword">void</span> <span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">Predicate</span> <span class="identifier">pred</span><span class="special">);</span>
917 </pre>
918 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
919 <li class="listitem">
920                 <span class="bold"><strong>Effects:</strong></span> Erases all elements <code class="computeroutput"><span class="identifier">x</span></code> of the view for which <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
921                 holds.
922               </li>
923 <li class="listitem">
924                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
925                 O(n + m*D(n)), where m is the number of elements erased.
926               </li>
927 <li class="listitem">
928                 <span class="bold"><strong>Exception safety:</strong></span> Basic.
929               </li>
930 </ul></div>
931 <a name="reference_list_of_unique"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">unique</span><span class="special">();</span>
932 </pre>
933 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
934 <li class="listitem">
935                 <span class="bold"><strong>Effects:</strong></span> Eliminates all but the
936                 first element from every consecutive group of equal elements referred
937                 to by the iterator <code class="computeroutput"><span class="identifier">i</span></code>
938                 in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">+</span><span class="number">1</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code> for which <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span><span class="special">==*(</span><span class="identifier">i</span><span class="special">-</span><span class="number">1</span><span class="special">)</span></code>.
939               </li>
940 <li class="listitem">
941                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
942                 O(n + m*D(n)), where m is the number of elements erased.
943               </li>
944 <li class="listitem">
945                 <span class="bold"><strong>Exception safety:</strong></span> Basic.
946               </li>
947 </ul></div>
948 <a name="reference_list_of_unique_predicate"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span> <span class="special">&gt;</span>
949 <span class="keyword">void</span> <span class="identifier">unique</span><span class="special">(</span><span class="identifier">BinaryPredicate</span> <span class="identifier">binary_pred</span><span class="special">);</span>
950 </pre>
951 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
952 <li class="listitem">
953                 <span class="bold"><strong>Effects:</strong></span> Eliminates all but the
954                 first element from every consecutive group of elements referred to
955                 by the iterator i in the range [first+1,last) for which <code class="computeroutput"><span class="identifier">binary_pred</span><span class="special">(*</span><span class="identifier">i</span><span class="special">,*(</span><span class="identifier">i</span><span class="special">-</span><span class="number">1</span><span class="special">))</span></code>
956                 holds.
957               </li>
958 <li class="listitem">
959                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
960                 O(n + m*D(n)), where m is the number of elements erased.
961               </li>
962 <li class="listitem">
963                 <span class="bold"><strong>Exception safety:</strong></span> Basic.
964               </li>
965 </ul></div>
966 <a name="reference_list_of_merge_this"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">merge</span><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
967 </pre>
968 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
969 <li class="listitem">
970                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code> is a <a href="https://www.boost.org/sgi/stl/StrictWeakOrdering.html" target="_top">Strict
971                 Weak Ordering</a> over <code class="computeroutput"><span class="identifier">value_type</span></code>.
972                 Both the view and <code class="computeroutput"><span class="identifier">x</span></code>
973                 are sorted according to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code>.
974               </li>
975 <li class="listitem">
976                 <span class="bold"><strong>Effects:</strong></span> Attempts to insert every
977                 element of <code class="computeroutput"><span class="identifier">x</span></code> into
978                 the corresponding position of the view (according to the order).
979                 Elements successfully inserted are erased from <code class="computeroutput"><span class="identifier">x</span></code>.
980                 The resulting sequence is stable, i.e. equivalent elements of either
981                 container preserve their relative position. In the special case
982                 <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
983                 no operation is performed.
984               </li>
985 <li class="listitem">
986                 <span class="bold"><strong>Postconditions:</strong></span> Elements in the
987                 view and remaining elements in <code class="computeroutput"><span class="identifier">x</span></code>
988                 are sorted. Validity of iterators to the view and of non-erased elements
989                 of <code class="computeroutput"><span class="identifier">x</span></code> references is
990                 preserved.
991               </li>
992 <li class="listitem">
993                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
994                 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
995                 constant; otherwise O(n + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*I(n+<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>) + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*D(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)).
996               </li>
997 <li class="listitem">
998                 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
999                 nothrow; otherwise, basic.
1000               </li>
1001 </ul></div>
1002 <a name="reference_list_of_merge_this_compare"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
1003 <span class="keyword">void</span> <span class="identifier">merge</span><span class="special">(</span><span class="identifier">this_type</span> <span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
1004 </pre>
1005 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1006 <li class="listitem">
1007                 <span class="bold"><strong>Requires:</strong></span> Compare is a <a href="https://www.boost.org/sgi/stl/StrictWeakOrdering.html" target="_top">Strict
1008                 Weak Ordering</a> over <code class="computeroutput"><span class="identifier">value_type</span></code>.
1009                 Both the view and <code class="computeroutput"><span class="identifier">x</span></code>
1010                 are sorted according to <code class="computeroutput"><span class="identifier">comp</span></code>.
1011               </li>
1012 <li class="listitem">
1013                 <span class="bold"><strong>Effects:</strong></span> Attempts to insert every
1014                 element of <code class="computeroutput"><span class="identifier">x</span></code> into
1015                 the corresponding position of the view (according to <code class="computeroutput"><span class="identifier">comp</span></code>). Elements successfully inserted
1016                 are erased from <code class="computeroutput"><span class="identifier">x</span></code>.
1017                 The resulting sequence is stable, i.e. equivalent elements of either
1018                 container preserve their relative position. In the special case
1019                 <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
1020                 no operation is performed.
1021               </li>
1022 <li class="listitem">
1023                 <span class="bold"><strong>Postconditions:</strong></span> Elements in the
1024                 view and remaining elements in <code class="computeroutput"><span class="identifier">x</span></code>
1025                 are sorted according to <code class="computeroutput"><span class="identifier">comp</span></code>.
1026                 Validity of iterators to the view and of non-erased elements of
1027                 <code class="computeroutput"><span class="identifier">x</span></code> references is preserved.
1028               </li>
1029 <li class="listitem">
1030                 <a class="link" href="list_of_reference.html#list_of_complexity_signature"><span class="bold"><strong>Complexity:</strong></span></a>
1031                 If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
1032                 constant; otherwise O(n + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*I(n+<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>) + <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>*D(<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>)).
1033               </li>
1034 <li class="listitem">
1035                 <span class="bold"><strong>Exception safety:</strong></span> If <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">x</span><span class="special">==</span><span class="keyword">this</span></code>,
1036                 nothrow; otherwise, basic.
1037               </li>
1038 </ul></div>
1039 <a name="reference_list_of_sort"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">sort</span><span class="special">();</span>
1040 </pre>
1041 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1042 <li class="listitem">
1043                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code> is a <a href="https://www.boost.org/sgi/stl/StrictWeakOrdering.html" target="_top">Strict
1044                 Weak Ordering</a> over value_type.
1045               </li>
1046 <li class="listitem">
1047                 <span class="bold"><strong>Effects:</strong></span> Sorts the view according
1048                 to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code>.
1049                 The sorting is stable, i.e. equivalent elements preserve their relative
1050                 position.
1051               </li>
1052 <li class="listitem">
1053                 <span class="bold"><strong>Postconditions:</strong></span> Validity of iterators
1054                 and references is preserved.
1055               </li>
1056 <li class="listitem">
1057                 <span class="bold"><strong>Complexity:</strong></span> O(n*log(n)).
1058               </li>
1059 <li class="listitem">
1060                 <span class="bold"><strong>Exception safety:</strong></span> nothrow if <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;</span></code>
1061                 does not throw; otherwise, basic.
1062               </li>
1063 </ul></div>
1064 <a name="reference_list_of_sort_compare"></a><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Compare</span> <span class="special">&gt;</span>
1065 <span class="keyword">void</span> <span class="identifier">sort</span><span class="special">(</span><span class="identifier">Compare</span> <span class="identifier">comp</span><span class="special">);</span>
1066 </pre>
1067 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1068 <li class="listitem">
1069                 <span class="bold"><strong>Requires:</strong></span> Compare is a <a href="https://www.boost.org/sgi/stl/StrictWeakOrdering.html" target="_top">Strict
1070                 Weak Ordering</a> over value_type.
1071               </li>
1072 <li class="listitem">
1073                 <span class="bold"><strong>Effects:</strong></span> Sorts the view according
1074                 to comp. The sorting is stable, i.e. equivalent elements preserve
1075                 their relative position.
1076               </li>
1077 <li class="listitem">
1078                 <span class="bold"><strong>Postconditions:</strong></span> Validity of iterators
1079                 and references is preserved.
1080               </li>
1081 <li class="listitem">
1082                 <span class="bold"><strong>Complexity:</strong></span> O(n*log(n)).
1083               </li>
1084 <li class="listitem">
1085                 <span class="bold"><strong>Exception safety:</strong></span> nothrow if comp
1086                 does not throw; otherwise, basic.
1087               </li>
1088 </ul></div>
1089 <a name="reference_list_of_reverse"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">reverse</span><span class="special">();</span>
1090 </pre>
1091 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1092 <li class="listitem">
1093                 <span class="bold"><strong>Effects:</strong></span> Reverses the order of the
1094                 elements in the view.
1095               </li>
1096 <li class="listitem">
1097                 <span class="bold"><strong>Postconditions:</strong></span> Validity of iterators
1098                 and references is preserved.
1099               </li>
1100 <li class="listitem">
1101                 <span class="bold"><strong>Complexity:</strong></span> O(n).
1102               </li>
1103 <li class="listitem">
1104                 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
1105               </li>
1106 </ul></div>
1107 </div>
1108 <div class="section">
1109 <div class="titlepage"><div><div><h5 class="title">
1110 <a name="boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.rearrange_operations" title="Rearrange operations">Rearrange
1111           operations</a>
1112 </h5></div></div></div>
1113 <p>
1114             These operations, without counterpart in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span></code>
1115             (although splice provides partially overlapping functionality), perform
1116             individual and global repositioning of elements inside the index.
1117           </p>
1118 <a name="reference_list_of_relocate_iterator_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">i</span><span class="special">);</span>
1119 </pre>
1120 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1121 <li class="listitem">
1122                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
1123                 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">i</span></code>
1124                 is a valid dereferenceable iterator of the view.
1125               </li>
1126 <li class="listitem">
1127                 <span class="bold"><strong>Effects:</strong></span> Inserts the element pointed
1128                 to by <code class="computeroutput"><span class="identifier">i</span></code> before <code class="computeroutput"><span class="identifier">position</span></code>. If <code class="computeroutput"><span class="identifier">position</span><span class="special">==</span><span class="identifier">i</span></code>,
1129                 no operation is performed.
1130               </li>
1131 <li class="listitem">
1132                 <span class="bold"><strong>Postconditions:</strong></span> No iterator or reference
1133                 is invalidated.
1134               </li>
1135 <li class="listitem">
1136                 <span class="bold"><strong>Complexity:</strong></span> Constant.
1137               </li>
1138 <li class="listitem">
1139                 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
1140               </li>
1141 </ul></div>
1142 <a name="reference_list_of_relocate_iterator_iterator_iterator"></a><pre class="programlisting"><span class="keyword">void</span> <span class="identifier">relocate</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">);</span>
1143 </pre>
1144 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1145 <li class="listitem">
1146                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">position</span></code>
1147                 is a valid iterator of the view. <code class="computeroutput"><span class="identifier">first</span></code>
1148                 and <code class="computeroutput"><span class="identifier">last</span></code> are valid
1149                 iterators of the view. <code class="computeroutput"><span class="identifier">last</span></code>
1150                 is reachable from <code class="computeroutput"><span class="identifier">first</span></code>.
1151                 <code class="computeroutput"><span class="identifier">position</span></code> is not in
1152                 the range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code>.
1153               </li>
1154 <li class="listitem">
1155                 <span class="bold"><strong>Effects:</strong></span> The range of elements
1156                 <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code> is repositioned just before <code class="computeroutput"><span class="identifier">position</span></code>.
1157               </li>
1158 <li class="listitem">
1159                 <span class="bold"><strong>Postconditions:</strong></span> No iterator or reference
1160                 is invalidated.
1161               </li>
1162 <li class="listitem">
1163                 <span class="bold"><strong>Complexity:</strong></span> Constant.
1164               </li>
1165 <li class="listitem">
1166                 <span class="bold"><strong>Exception safety:</strong></span> nothrow.
1167               </li>
1168 </ul></div>
1169 </div>
1170 <div class="section">
1171 <div class="titlepage"><div><div><h5 class="title">
1172 <a name="boost_bimap.reference.list_of_reference.list_of_views.serialization"></a><a class="link" href="list_of_reference.html#boost_bimap.reference.list_of_reference.list_of_views.serialization" title="Serialization">Serialization</a>
1173 </h5></div></div></div>
1174 <p>
1175             Views cannot be serialized on their own, but only as part of the <code class="computeroutput"><span class="identifier">bimap</span></code> into which they are embedded.
1176             In describing the additional preconditions and guarantees associated
1177             to <code class="computeroutput"><span class="identifier">list_of</span></code> views with
1178             respect to serialization of their embedding containers, we use the concepts
1179             defined in the <code class="computeroutput"><span class="identifier">bimap</span></code>
1180             serialization section.
1181           </p>
1182 <div class="blurb">
1183 <div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
1184 <p>
1185             <span class="bold"><strong>Operation:</strong></span> saving of a <code class="computeroutput"><span class="identifier">bimap</span></code> b to an output archive (XML archive)
1186             ar.
1187           </p>
1188 </div>
1189 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1190                 <span class="bold"><strong>Requires:</strong></span> No additional requirements
1191                 to those imposed by the container.
1192               </li></ul></div>
1193 <div class="blurb">
1194 <div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
1195 <p>
1196             <span class="bold"><strong>Operation:</strong></span> loading of a <code class="computeroutput"><span class="identifier">bimap</span></code> b' from an input archive (XML
1197             archive) ar.
1198           </p>
1199 </div>
1200 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1201                 <span class="bold"><strong>Requires:</strong></span> No additional requirements
1202                 to those imposed by the container. <span class="bold"><strong>Postconditions:</strong></span>
1203                 On successful loading, each of the elements of <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(),</span>
1204                 <span class="identifier">end</span><span class="special">())</span></code>
1205                 is a restored copy of the corresponding element in <code class="computeroutput"><span class="special">[</span><span class="identifier">m</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">i</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">i</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">())</span></code>, where <code class="computeroutput"><span class="identifier">i</span></code>
1206                 is the position of the <code class="computeroutput"><span class="identifier">list_of</span></code>
1207                 view in the container.
1208               </li></ul></div>
1209 <div class="blurb">
1210 <div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
1211 <p>
1212             <span class="bold"><strong>Operation:</strong></span> saving of an <code class="computeroutput"><span class="identifier">iterator</span></code> or <code class="computeroutput"><span class="identifier">const_iterator</span></code>
1213             it to an output archive (XML archive) ar.
1214           </p>
1215 </div>
1216 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
1217                 <span class="bold"><strong>Requires: </strong></span> <code class="computeroutput"><span class="identifier">it</span></code>
1218                 is a valid iterator of the view. The associated <code class="computeroutput"><span class="identifier">bimap</span></code>
1219                 has been previously saved.
1220               </li></ul></div>
1221 <div class="blurb">
1222 <div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
1223 <p>
1224             <span class="bold"><strong>Operation:</strong></span> loading of an <code class="computeroutput"><span class="identifier">iterator</span></code> or <code class="computeroutput"><span class="identifier">const_iterator</span>
1225             <span class="identifier">it</span></code>' from an input archive (XML
1226             archive) ar.
1227           </p>
1228 </div>
1229 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1230 <li class="listitem">
1231                 <span class="bold"><strong>Postconditions:</strong></span> On successful loading,
1232                 if it was dereferenceable then <code class="computeroutput"><span class="special">*</span><span class="identifier">it</span></code>' is the restored copy of <code class="computeroutput"><span class="special">*</span><span class="identifier">it</span></code>,
1233                 otherwise <code class="computeroutput"><span class="identifier">it</span></code>'<code class="computeroutput">
1234                 <span class="special">==</span> <span class="identifier">end</span><span class="special">()</span></code>.
1235               </li>
1236 <li class="listitem">
1237                 <span class="bold"><strong>Note:</strong></span> It is allowed that <code class="computeroutput"><span class="identifier">it</span></code> be a <code class="computeroutput"><span class="identifier">const_iterator</span></code>
1238                 and the restored <code class="computeroutput"><span class="identifier">it</span></code>'
1239                 an iterator, or viceversa.
1240               </li>
1241 </ul></div>
1242 </div>
1243 </div>
1244 </div>
1245 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1246 <td align="left"></td>
1247 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Matias Capeletto<p>
1248         Distributed under the Boost Software License, Version 1.0. (See accompanying
1249         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>)
1250       </p>
1251 </div></td>
1252 </tr></table>
1253 <hr>
1254 <div class="spirit-nav">
1255 <a accesskey="p" href="unordered_set_of_reference.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="vector_of_reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
1256 </div>
1257 </body>
1258 </html>