]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/phoenix/doc/html/phoenix/modules/stl/container.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / phoenix / doc / html / phoenix / modules / stl / container.html
CommitLineData
7c673cae
FG
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4<title>Container</title>
5<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.2.0">
8<link rel="up" href="../stl.html" title="STL">
9<link rel="prev" href="../stl.html" title="STL">
10<link rel="next" href="algorithm.html" title="Algorithm">
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="../stl.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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="algorithm.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h4 class="title">
27<a name="phoenix.modules.stl.container"></a><a class="link" href="container.html" title="Container">Container</a>
28</h4></div></div></div>
29<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
30</pre>
31<p>
32 The container module predefines a set of lazy functions that work on STL
33 containers. These functions provide a mechanism for the lazy evaluation
34 of the public member functions of the STL containers. The lazy functions
35 are thin wrappers that simply forward to their respective counterparts
36 in the STL library.
37 </p>
38<p>
39 Lazy functions are provided for all of the member functions of the following
40 containers:
41 </p>
42<div class="itemizedlist"><ul class="itemizedlist" type="disc">
43<li class="listitem">
44 deque
45 </li>
46<li class="listitem">
47 list
48 </li>
49<li class="listitem">
50 map
51 </li>
52<li class="listitem">
53 multimap
54 </li>
55<li class="listitem">
56 vector
57 </li>
58</ul></div>
59<p>
60 Indeed, should your class have member functions with the same names and
61 signatures as those listed below, then it will automatically be supported.
62 To summarize, lazy functions are provided for member functions:
63 </p>
64<div class="itemizedlist"><ul class="itemizedlist" type="disc">
65<li class="listitem">
66 assign
67 </li>
68<li class="listitem">
69 at
70 </li>
71<li class="listitem">
72 back
73 </li>
74<li class="listitem">
75 begin
76 </li>
77<li class="listitem">
78 capacity
79 </li>
80<li class="listitem">
81 clear
82 </li>
83<li class="listitem">
84 empty
85 </li>
86<li class="listitem">
87 end
88 </li>
89<li class="listitem">
90 erase
91 </li>
92<li class="listitem">
93 front
94 </li>
95<li class="listitem">
96 get_allocator
97 </li>
98<li class="listitem">
99 insert
100 </li>
101<li class="listitem">
102 key_comp
103 </li>
104<li class="listitem">
105 max_size
106 </li>
107<li class="listitem">
108 pop_back
109 </li>
110<li class="listitem">
111 pop_front
112 </li>
113<li class="listitem">
114 push_back
115 </li>
116<li class="listitem">
117 push_front
118 </li>
119<li class="listitem">
120 rbegin
121 </li>
122<li class="listitem">
123 rend
124 </li>
125<li class="listitem">
126 reserve
127 </li>
128<li class="listitem">
129 resize
130 </li>
131<li class="listitem">
132 size
133 </li>
134<li class="listitem">
135 splice
136 </li>
137<li class="listitem">
138 value_comp
139 </li>
140</ul></div>
141<p>
142 The lazy functions' names are the same as the corresponding member function.
143 The difference is that the lazy functions are free functions and therefore
144 does not use the member "dot" syntax.
145 </p>
146<div class="table">
147<a name="phoenix.modules.stl.container.t0"></a><p class="title"><b>Table&#160;1.4.&#160;Sample usage</b></p>
148<div class="table-contents"><table class="table" summary="Sample usage">
149<colgroup>
150<col>
151<col>
152</colgroup>
153<thead><tr>
154<th>
155 <p>
156 "Normal" version
157 </p>
158 </th>
159<th>
160 <p>
161 "Lazy" version
162 </p>
163 </th>
164</tr></thead>
165<tbody>
166<tr>
167<td>
168 <p>
169 <code class="computeroutput"><span class="identifier">my_vector</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="number">5</span><span class="special">)</span></code>
170 </p>
171 </td>
172<td>
173 <p>
174 <code class="computeroutput"><span class="identifier">at</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span>
175 <span class="number">5</span><span class="special">)</span></code>
176 </p>
177 </td>
178</tr>
179<tr>
180<td>
181 <p>
182 <code class="computeroutput"><span class="identifier">my_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
183 </p>
184 </td>
185<td>
186 <p>
187 <code class="computeroutput"><span class="identifier">size</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span></code>
188 </p>
189 </td>
190</tr>
191<tr>
192<td>
193 <p>
194 <code class="computeroutput"><span class="identifier">my_vector1</span><span class="special">.</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">my_vector2</span><span class="special">)</span></code>
195 </p>
196 </td>
197<td>
198 <p>
199 <code class="computeroutput"><span class="identifier">swap</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span>
200 <span class="identifier">arg2</span><span class="special">)</span></code>
201 </p>
202 </td>
203</tr>
204</tbody>
205</table></div>
206</div>
207<br class="table-break"><p>
208 Notice that member functions with names that clash with stl algorithms
209 are absent. This will be provided in Phoenix's algorithm module.
210 </p>
211<p>
212 No support is provided here for lazy versions of <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]</span></code> etc. Such operators are not specific
213 to STL containers and lazy versions can therefore be found in <a class="link" href="../operator.html" title="Operator">operators</a>.
214 </p>
215<p>
216 The following table describes the container functions and their semantics.
217 </p>
218<div class="sidebar">
219<p class="title"><b></b></p>
220<p>
221 <span class="inlinemediaobject"><img src="../../../images/tip.png"></span>
222 Arguments in brackets denote optional parameters.
223 </p>
224</div>
225<div class="table">
226<a name="phoenix.modules.stl.container.t1"></a><p class="title"><b>Table&#160;1.5.&#160;Lazy STL Container Functions</b></p>
227<div class="table-contents"><table class="table" summary="Lazy STL Container Functions">
228<colgroup>
229<col>
230<col>
231</colgroup>
232<thead><tr>
233<th>
234 <p>
235 Function
236 </p>
237 </th>
238<th>
239 <p>
240 Semantics
241 </p>
242 </th>
243</tr></thead>
244<tbody>
245<tr>
246<td>
247 <p>
248 <code class="computeroutput"><span class="identifier">assign</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
249 <span class="identifier">a</span><span class="special">[,</span>
250 <span class="identifier">b</span><span class="special">,</span>
251 <span class="identifier">c</span><span class="special">])</span></code>
252 </p>
253 </td>
254<td>
255 <p>
256 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">assign</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
257 <span class="identifier">b</span><span class="special">,</span>
258 <span class="identifier">c</span><span class="special">])</span></code>
259 </p>
260 </td>
261</tr>
262<tr>
263<td>
264 <p>
265 <code class="computeroutput"><span class="identifier">at</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
266 <span class="identifier">i</span><span class="special">)</span></code>
267 </p>
268 </td>
269<td>
270 <p>
271 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span></code>
272 </p>
273 </td>
274</tr>
275<tr>
276<td>
277 <p>
278 <code class="computeroutput"><span class="identifier">back</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
279 </p>
280 </td>
281<td>
282 <p>
283 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">back</span><span class="special">()</span></code>
284 </p>
285 </td>
286</tr>
287<tr>
288<td>
289 <p>
290 <code class="computeroutput"><span class="identifier">begin</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
291 </p>
292 </td>
293<td>
294 <p>
295 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code>
296 </p>
297 </td>
298</tr>
299<tr>
300<td>
301 <p>
302 <code class="computeroutput"><span class="identifier">capacity</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
303 </p>
304 </td>
305<td>
306 <p>
307 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">capacity</span><span class="special">()</span></code>
308 </p>
309 </td>
310</tr>
311<tr>
312<td>
313 <p>
314 <code class="computeroutput"><span class="identifier">clear</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
315 </p>
316 </td>
317<td>
318 <p>
319 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></code>
320 </p>
321 </td>
322</tr>
323<tr>
324<td>
325 <p>
326 <code class="computeroutput"><span class="identifier">empty</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
327 </p>
328 </td>
329<td>
330 <p>
331 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>
332 </p>
333 </td>
334</tr>
335<tr>
336<td>
337 <p>
338 <code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
339 </p>
340 </td>
341<td>
342 <p>
343 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>
344 </p>
345 </td>
346</tr>
347<tr>
348<td>
349 <p>
350 <code class="computeroutput"><span class="identifier">erase</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
351 <span class="identifier">a</span><span class="special">[,</span>
352 <span class="identifier">b</span><span class="special">])</span></code>
353 </p>
354 </td>
355<td>
356 <p>
357 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
358 <span class="identifier">b</span><span class="special">])</span></code>
359 </p>
360 </td>
361</tr>
362<tr>
363<td>
364 <p>
365 <code class="computeroutput"><span class="identifier">front</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
366 </p>
367 </td>
368<td>
369 <p>
370 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">front</span><span class="special">()</span></code>
371 </p>
372 </td>
373</tr>
374<tr>
375<td>
376 <p>
377 <code class="computeroutput"><span class="identifier">get_allocator</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
378 </p>
379 </td>
380<td>
381 <p>
382 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_allocator</span><span class="special">()</span></code>
383 </p>
384 </td>
385</tr>
386<tr>
387<td>
388 <p>
389 <code class="computeroutput"><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
390 <span class="identifier">a</span><span class="special">[,</span>
391 <span class="identifier">b</span><span class="special">,</span>
392 <span class="identifier">c</span><span class="special">])</span></code>
393 </p>
394 </td>
395<td>
396 <p>
397 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
398 <span class="identifier">b</span><span class="special">,</span>
399 <span class="identifier">c</span><span class="special">])</span></code>
400 </p>
401 </td>
402</tr>
403<tr>
404<td>
405 <p>
406 <code class="computeroutput"><span class="identifier">key_comp</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
407 </p>
408 </td>
409<td>
410 <p>
411 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">key_comp</span><span class="special">()</span></code>
412 </p>
413 </td>
414</tr>
415<tr>
416<td>
417 <p>
418 <code class="computeroutput"><span class="identifier">max_size</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
419 </p>
420 </td>
421<td>
422 <p>
423 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">max_size</span><span class="special">()</span></code>
424 </p>
425 </td>
426</tr>
427<tr>
428<td>
429 <p>
430 <code class="computeroutput"><span class="identifier">pop_back</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
431 </p>
432 </td>
433<td>
434 <p>
435 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">pop_back</span><span class="special">()</span></code>
436 </p>
437 </td>
438</tr>
439<tr>
440<td>
441 <p>
442 <code class="computeroutput"><span class="identifier">pop_front</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
443 </p>
444 </td>
445<td>
446 <p>
447 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">pop_front</span><span class="special">()</span></code>
448 </p>
449 </td>
450</tr>
451<tr>
452<td>
453 <p>
454 <code class="computeroutput"><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
455 <span class="identifier">d</span><span class="special">)</span></code>
456 </p>
457 </td>
458<td>
459 <p>
460 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code>
461 </p>
462 </td>
463</tr>
464<tr>
465<td>
466 <p>
467 <code class="computeroutput"><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
468 <span class="identifier">d</span><span class="special">)</span></code>
469 </p>
470 </td>
471<td>
472 <p>
473 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code>
474 </p>
475 </td>
476</tr>
477<tr>
478<td>
479 <p>
480 <code class="computeroutput"><span class="identifier">pop_front</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
481 </p>
482 </td>
483<td>
484 <p>
485 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">pop_front</span><span class="special">()</span></code>
486 </p>
487 </td>
488</tr>
489<tr>
490<td>
491 <p>
492 <code class="computeroutput"><span class="identifier">rbegin</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
493 </p>
494 </td>
495<td>
496 <p>
497 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">rbegin</span><span class="special">()</span></code>
498 </p>
499 </td>
500</tr>
501<tr>
502<td>
503 <p>
504 <code class="computeroutput"><span class="identifier">rend</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
505 </p>
506 </td>
507<td>
508 <p>
509 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">rend</span><span class="special">()</span></code>
510 </p>
511 </td>
512</tr>
513<tr>
514<td>
515 <p>
516 <code class="computeroutput"><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
517 <span class="identifier">n</span><span class="special">)</span></code>
518 </p>
519 </td>
520<td>
521 <p>
522 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
523 </p>
524 </td>
525</tr>
526<tr>
527<td>
528 <p>
529 <code class="computeroutput"><span class="identifier">resize</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
530 <span class="identifier">a</span><span class="special">[,</span>
531 <span class="identifier">b</span><span class="special">])</span></code>
532 </p>
533 </td>
534<td>
535 <p>
536 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
537 <span class="identifier">b</span><span class="special">])</span></code>
538 </p>
539 </td>
540</tr>
541<tr>
542<td>
543 <p>
544 <code class="computeroutput"><span class="identifier">size</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
545 </p>
546 </td>
547<td>
548 <p>
549 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
550 </p>
551 </td>
552</tr>
553<tr>
554<td>
555 <p>
556 <code class="computeroutput"><span class="identifier">splice</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
557 <span class="identifier">a</span><span class="special">[,</span>
558 <span class="identifier">b</span><span class="special">,</span>
559 <span class="identifier">c</span><span class="special">,</span>
560 <span class="identifier">d</span><span class="special">])</span></code>
561 </p>
562 </td>
563<td>
564 <p>
565 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">splice</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
566 <span class="identifier">b</span><span class="special">,</span>
567 <span class="identifier">c</span><span class="special">,</span>
568 <span class="identifier">d</span><span class="special">])</span></code>
569 </p>
570 </td>
571</tr>
572<tr>
573<td>
574 <p>
575 <code class="computeroutput"><span class="identifier">value_comp</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
576 </p>
577 </td>
578<td>
579 <p>
580 <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">value_comp</span><span class="special">()</span></code>
581 </p>
582 </td>
583</tr>
584</tbody>
585</table></div>
586</div>
587<br class="table-break">
588</div>
589<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
590<td align="left"></td>
591<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010, 2014, 2015 Joel de Guzman, Dan Marsden, Thomas
592 Heller, John Fletcher<p>
593 Distributed under the Boost Software License, Version 1.0. (See accompanying
594 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>)
595 </p>
596</div></td>
597</tr></table>
598<hr>
599<div class="spirit-nav">
600<a accesskey="p" href="../stl.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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="algorithm.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
601</div>
602</body>
603</html>