]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / bimap / doc / html / boost_bimap / the_tutorial / bimaps_with_user_defined_names.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Bimaps with user defined names</title>
5 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
7 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Bimap">
8 <link rel="up" href="../the_tutorial.html" title="The tutorial">
9 <link rel="prev" href="useful_functions.html" title="Useful functions">
10 <link rel="next" href="unconstrained_sets.html" title="Unconstrained Sets">
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="useful_functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.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="unconstrained_sets.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section boost_bimap_the_tutorial_bimaps_with_user_defined_names">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_bimap.the_tutorial.bimaps_with_user_defined_names"></a><a class="link" href="bimaps_with_user_defined_names.html" title="Bimaps with user defined names">Bimaps
28 with user defined names</a>
29 </h3></div></div></div>
30 <p>
31 In the following example, the library user inserted comments to guide future
32 programmers:
33 </p>
34 <p>
35 <a href="../../../../example/user_defined_names.cpp" target="_top">Go to source code</a>
36 </p>
37 <p>
38 </p>
39 <pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bimap</span>
40 <span class="special">&lt;</span>
41 <span class="identifier">multiset_of</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;,</span>
42 <span class="keyword">int</span>
43
44 <span class="special">&gt;</span> <span class="identifier">People</span><span class="special">;</span>
45
46 <span class="identifier">People</span> <span class="identifier">people</span><span class="special">;</span>
47
48 <span class="comment">// ...</span>
49
50 <span class="keyword">int</span> <span class="identifier">user_id</span><span class="special">;</span>
51 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cin</span> <span class="special">&gt;&gt;</span> <span class="identifier">user_id</span><span class="special">;</span>
52
53 <span class="comment">// people.right : map&lt;id,name&gt;</span>
54
55 <span class="identifier">People</span><span class="special">::</span><span class="identifier">right_const_iterator</span> <span class="identifier">id_iter</span> <span class="special">=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">user_id</span><span class="special">);</span>
56 <span class="keyword">if</span><span class="special">(</span> <span class="identifier">id_iter</span> <span class="special">!=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span> <span class="special">)</span>
57 <span class="special">{</span>
58 <span class="comment">// first : id</span>
59 <span class="comment">// second : name</span>
60
61 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"name: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">id_iter</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span>
62 <span class="special">&lt;&lt;</span> <span class="string">"id: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">id_iter</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
63 <span class="special">}</span>
64 <span class="keyword">else</span>
65 <span class="special">{</span>
66 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Unknown id, users are:"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
67
68 <span class="comment">// people.left : map&lt;name,id&gt;</span>
69
70 <span class="keyword">for</span><span class="special">(</span> <span class="identifier">People</span><span class="special">::</span><span class="identifier">left_const_iterator</span>
71 <span class="identifier">name_iter</span> <span class="special">=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span>
72 <span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
73
74 <span class="identifier">name_iter</span> <span class="special">!=</span> <span class="identifier">iend</span><span class="special">;</span> <span class="special">++</span><span class="identifier">name_iter</span> <span class="special">)</span>
75 <span class="special">{</span>
76 <span class="comment">// first : name</span>
77 <span class="comment">// second : id</span>
78
79 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"name: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">name_iter</span><span class="special">-&gt;</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span>
80 <span class="special">&lt;&lt;</span> <span class="string">"id: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">name_iter</span><span class="special">-&gt;</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
81 <span class="special">}</span>
82 <span class="special">}</span>
83 </pre>
84 <p>
85 </p>
86 <p>
87 In Boost.Bimap there is a better way to document the code and in the meantime
88 helping you to write more maintainable and readable code. You can tag the
89 two collections of the bimap so they can be accessed by more descriptive
90 names.
91 </p>
92 <p>
93 <span class="inlinemediaobject"><img src="../../images/bimap/tagged.png" alt="tagged"></span>
94 </p>
95 <p>
96 A tagged type is a type that has been labelled using a tag. A tag is any
97 valid C++ type. In a bimap, the types are always tagged. If you do not specify
98 your own tag, the container uses <code class="computeroutput"><span class="identifier">member_at</span><span class="special">::</span><span class="identifier">left</span></code>
99 and <code class="computeroutput"><span class="identifier">member_at</span><span class="special">::</span><span class="identifier">right</span></code> to tag the left and right sides respectively.
100 In order to specify a custom tag, the type of each side has to be tagged.
101 Tagging a type is very simple:
102 </p>
103 <pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">a_tag</span> <span class="special">&gt;</span> <span class="identifier">tagged_int</span><span class="special">;</span>
104 </pre>
105 <p>
106 Now we can rewrite the example:
107 </p>
108 <p>
109 <a href="../../../../example/user_defined_names.cpp" target="_top">Go to source code</a>
110 </p>
111 <p>
112 </p>
113 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">id</span> <span class="special">{};</span> <span class="comment">// Tag for the identification number</span>
114 <span class="keyword">struct</span> <span class="identifier">name</span> <span class="special">{};</span> <span class="comment">// Tag for the name of the person</span>
115
116 <span class="keyword">typedef</span> <span class="identifier">bimap</span>
117 <span class="special">&lt;</span>
118 <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">,</span> <span class="identifier">id</span> <span class="special">&gt;</span> <span class="special">,</span>
119 <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
120
121 <span class="special">&gt;</span> <span class="identifier">People</span><span class="special">;</span>
122
123 <span class="identifier">People</span> <span class="identifier">people</span><span class="special">;</span>
124
125 <span class="comment">// ...</span>
126
127 <span class="keyword">int</span> <span class="identifier">user_id</span><span class="special">;</span>
128 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cin</span> <span class="special">&gt;&gt;</span> <span class="identifier">user_id</span><span class="special">;</span>
129
130 <span class="identifier">People</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">id</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span> <span class="identifier">id_iter</span> <span class="special">=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">id</span><span class="special">&gt;().</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">user_id</span><span class="special">);</span>
131 <span class="keyword">if</span><span class="special">(</span> <span class="identifier">id_iter</span> <span class="special">!=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">id</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">()</span> <span class="special">)</span>
132 <span class="special">{</span>
133 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"name: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">id_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span>
134 <span class="special">&lt;&lt;</span> <span class="string">"id: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">id_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">id</span><span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
135 <span class="special">}</span>
136 <span class="keyword">else</span>
137 <span class="special">{</span>
138 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Unknown id, users are:"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
139
140 <span class="keyword">for</span><span class="special">(</span> <span class="identifier">People</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span>
141 <span class="identifier">name_iter</span> <span class="special">=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">begin</span><span class="special">(),</span>
142 <span class="identifier">iend</span> <span class="special">=</span> <span class="identifier">people</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;().</span><span class="identifier">end</span><span class="special">();</span>
143
144 <span class="identifier">name_iter</span> <span class="special">!=</span> <span class="identifier">iend</span><span class="special">;</span> <span class="special">++</span><span class="identifier">name_iter</span> <span class="special">)</span>
145 <span class="special">{</span>
146 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"name: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">name_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">name</span><span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span>
147 <span class="special">&lt;&lt;</span> <span class="string">"id: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">name_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">id</span><span class="special">&gt;()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
148 <span class="special">}</span>
149 <span class="special">}</span>
150 </pre>
151 <p>
152 </p>
153 <p>
154 Here is a list of common structures in both tagged and untagged versions.
155 Remember that when the bimap has user defined tags you can still use the
156 untagged version structures.
157 </p>
158 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Left</span> <span class="special">{};</span>
159 <span class="keyword">struct</span> <span class="identifier">Right</span> <span class="special">{};</span>
160 <span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
161 <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">Left</span> <span class="special">&gt;</span> <span class="special">&gt;,</span>
162 <span class="identifier">unordered_set_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">Right</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
163 <span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
164
165 <span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
166
167 <span class="comment">//...</span>
168
169 <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
170 <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">left_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
171 <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_iterator</span> <span class="identifier">right_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
172 </pre>
173 <div class="table">
174 <a name="boost_bimap.the_tutorial.bimaps_with_user_defined_names.t0"></a><p class="title"><b>Table&#160;1.3.&#160;Equivalence of expresions using user defined names</b></p>
175 <div class="table-contents"><table class="table" summary="Equivalence of expresions using user defined names">
176 <colgroup>
177 <col>
178 <col>
179 </colgroup>
180 <thead><tr>
181 <th>
182 <p>
183 Untagged version
184 </p>
185 </th>
186 <th>
187 <p>
188 Tagged version
189 </p>
190 </th>
191 </tr></thead>
192 <tbody>
193 <tr>
194 <td>
195 <p>
196 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span></code>
197 </p>
198 </td>
199 <td>
200 <p>
201 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;()</span></code>
202 </p>
203 </td>
204 </tr>
205 <tr>
206 <td>
207 <p>
208 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span></code>
209 </p>
210 </td>
211 <td>
212 <p>
213 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">by</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;()</span></code>
214 </p>
215 </td>
216 </tr>
217 <tr>
218 <td>
219 <p>
220 <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_map</span></code>
221 </p>
222 </td>
223 <td>
224 <p>
225 <code class="computeroutput"><span class="identifier">bm</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
226 </p>
227 </td>
228 </tr>
229 <tr>
230 <td>
231 <p>
232 <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_value_type</span></code>
233 </p>
234 </td>
235 <td>
236 <p>
237 <code class="computeroutput"><span class="identifier">bm</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
238 </p>
239 </td>
240 </tr>
241 <tr>
242 <td>
243 <p>
244 <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span></code>
245 </p>
246 </td>
247 <td>
248 <p>
249 <code class="computeroutput"><span class="identifier">bm</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;::</span><span class="identifier">iterator</span></code>
250 </p>
251 </td>
252 </tr>
253 <tr>
254 <td>
255 <p>
256 <code class="computeroutput"><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_const_iterator</span></code>
257 </p>
258 </td>
259 <td>
260 <p>
261 <code class="computeroutput"><span class="identifier">bm</span><span class="special">::</span><span class="identifier">map_by</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;::</span><span class="identifier">const_iterator</span></code>
262 </p>
263 </td>
264 </tr>
265 <tr>
266 <td>
267 <p>
268 <code class="computeroutput"><span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">left</span></code>
269 </p>
270 </td>
271 <td>
272 <p>
273 <code class="computeroutput"><span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;()</span></code>
274 </p>
275 </td>
276 </tr>
277 <tr>
278 <td>
279 <p>
280 <code class="computeroutput"><span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">right</span></code>
281 </p>
282 </td>
283 <td>
284 <p>
285 <code class="computeroutput"><span class="identifier">iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;()</span></code>
286 </p>
287 </td>
288 </tr>
289 <tr>
290 <td>
291 <p>
292 <code class="computeroutput"><span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">first</span></code>
293 </p>
294 </td>
295 <td>
296 <p>
297 <code class="computeroutput"><span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;()</span></code>
298 </p>
299 </td>
300 </tr>
301 <tr>
302 <td>
303 <p>
304 <code class="computeroutput"><span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">second</span></code>
305 </p>
306 </td>
307 <td>
308 <p>
309 <code class="computeroutput"><span class="identifier">left_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;()</span></code>
310 </p>
311 </td>
312 </tr>
313 <tr>
314 <td>
315 <p>
316 <code class="computeroutput"><span class="identifier">right_iter</span><span class="special">-&gt;</span><span class="identifier">first</span></code>
317 </p>
318 </td>
319 <td>
320 <p>
321 <code class="computeroutput"><span class="identifier">right_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;()</span></code>
322 </p>
323 </td>
324 </tr>
325 <tr>
326 <td>
327 <p>
328 <code class="computeroutput"><span class="identifier">right_iter</span><span class="special">-&gt;</span><span class="identifier">second</span></code>
329 </p>
330 </td>
331 <td>
332 <p>
333 <code class="computeroutput"><span class="identifier">right_iter</span><span class="special">-&gt;</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;()</span></code>
334 </p>
335 </td>
336 </tr>
337 <tr>
338 <td>
339 <p>
340 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">project_left</span><span class="special">(</span><span class="identifier">iter</span><span class="special">)</span></code>
341 </p>
342 </td>
343 <td>
344 <p>
345 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">project</span><span class="special">&lt;</span><span class="identifier">Left</span><span class="special">&gt;(</span><span class="identifier">iter</span><span class="special">)</span></code>
346 </p>
347 </td>
348 </tr>
349 <tr>
350 <td>
351 <p>
352 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">project_right</span><span class="special">(</span><span class="identifier">iter</span><span class="special">)</span></code>
353 </p>
354 </td>
355 <td>
356 <p>
357 <code class="computeroutput"><span class="identifier">bm</span><span class="special">.</span><span class="identifier">project</span><span class="special">&lt;</span><span class="identifier">Right</span><span class="special">&gt;(</span><span class="identifier">iter</span><span class="special">)</span></code>
358 </p>
359 </td>
360 </tr>
361 </tbody>
362 </table></div>
363 </div>
364 <br class="table-break">
365 </div>
366 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
367 <td align="left"></td>
368 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Matias Capeletto<p>
369 Distributed under the Boost Software License, Version 1.0. (See accompanying
370 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>)
371 </p>
372 </div></td>
373 </tr></table>
374 <hr>
375 <div class="spirit-nav">
376 <a accesskey="p" href="useful_functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.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="unconstrained_sets.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
377 </div>
378 </body>
379 </html>