• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
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 1. 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 © 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>
1259