1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Traversal</title> 5<link rel="stylesheet" href="../../../../../../doc/src/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.Iterator"> 8<link rel="up" href="../concepts.html" title="Iterator Concepts"> 9<link rel="prev" href="../concepts.html" title="Iterator Concepts"> 10<link rel="next" href="../generic.html" title="Generic Iterators"> 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="../concepts.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.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="../generic.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="iterator.concepts.traversal"></a><a class="link" href="traversal.html" title="Traversal">Traversal</a> 28</h3></div></div></div> 29<div class="toc"><dl class="toc"> 30<dt><span class="section"><a href="traversal.html#iterator.concepts.traversal.incrementable">Incrementable 31 Iterator Concept</a></span></dt> 32<dt><span class="section"><a href="traversal.html#iterator.concepts.traversal.single_pass">Single Pass 33 Iterator Concept</a></span></dt> 34<dt><span class="section"><a href="traversal.html#iterator.concepts.traversal.forward">Forward Traversal 35 Concept</a></span></dt> 36<dt><span class="section"><a href="traversal.html#iterator.concepts.traversal.bidirectional">Bidirectional 37 Traversal Concept</a></span></dt> 38<dt><span class="section"><a href="traversal.html#iterator.concepts.traversal.random_access">Random Access 39 Traversal Concept</a></span></dt> 40</dl></div> 41<div class="section"> 42<div class="titlepage"><div><div><h4 class="title"> 43<a name="iterator.concepts.traversal.incrementable"></a><a class="link" href="traversal.html#iterator.concepts.traversal.incrementable" title="Incrementable Iterator Concept">Incrementable 44 Iterator Concept</a> 45</h4></div></div></div> 46<p> 47 A class or built-in type <code class="computeroutput"><span class="identifier">X</span></code> 48 models the <span class="bold"><strong>Incrementable Iterator</strong></span> concept 49 if, in addition to <code class="computeroutput"><span class="identifier">X</span></code> being 50 Assignable and Copy Constructible, the following expressions are valid 51 and respect the stated semantics. 52 </p> 53<div class="table"> 54<a name="iterator.concepts.traversal.incrementable.incrementable_iterator_requireme"></a><p class="title"><b>Table 1.5. Incrementable Iterator Requirements (in addition to Assignable, 55 Copy Constructible)</b></p> 56<div class="table-contents"><table class="table" summary="Incrementable Iterator Requirements (in addition to Assignable, 57 Copy Constructible)"> 58<colgroup> 59<col> 60<col> 61<col> 62</colgroup> 63<thead><tr> 64<th> 65 <p> 66 Expression 67 </p> 68 </th> 69<th> 70 <p> 71 Return Type 72 </p> 73 </th> 74<th> 75 <p> 76 Assertion/Semantics 77 </p> 78 </th> 79</tr></thead> 80<tbody> 81<tr> 82<td> 83 <p> 84 <code class="computeroutput"><span class="special">++</span><span class="identifier">r</span></code> 85 </p> 86 </td> 87<td> 88 <p> 89 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 90 </p> 91 </td> 92<td> 93 <p> 94 <code class="computeroutput"><span class="special">&</span><span class="identifier">r</span> 95 <span class="special">==</span> <span class="special">&++</span><span class="identifier">r</span></code> 96 </p> 97 </td> 98</tr> 99<tr> 100<td> 101 <p> 102 <code class="computeroutput"><span class="identifier">r</span><span class="special">++</span></code> 103 </p> 104 </td> 105<td> 106 <p> 107 <code class="computeroutput"><span class="identifier">X</span></code> 108 </p> 109 </td> 110<td> 111<pre class="programlisting"><span class="special">{</span> 112 <span class="identifier">X</span> <span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">r</span><span class="special">;</span> 113 <span class="special">++</span><span class="identifier">r</span><span class="special">;</span> 114 <span class="keyword">return</span> <span class="identifier">tmp</span><span class="special">;</span> 115<span class="special">}</span> 116</pre> 117 </td> 118</tr> 119<tr> 120<td> 121 <p> 122 <code class="computeroutput"><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> 123 </p> 124 </td> 125<td> 126 <p> 127 Convertible to <code class="computeroutput"><span class="identifier">incrementable_traversal_tag</span></code> 128 </p> 129 </td> 130<td> 131 </td> 132</tr> 133</tbody> 134</table></div> 135</div> 136<br class="table-break"> 137</div> 138<div class="section"> 139<div class="titlepage"><div><div><h4 class="title"> 140<a name="iterator.concepts.traversal.single_pass"></a><a class="link" href="traversal.html#iterator.concepts.traversal.single_pass" title="Single Pass Iterator Concept">Single Pass 141 Iterator Concept</a> 142</h4></div></div></div> 143<p> 144 A class or built-in type <code class="computeroutput"><span class="identifier">X</span></code> 145 models the <span class="bold"><strong>Single Pass Iterator</strong></span> concept 146 if the following expressions are valid and respect the stated semantics. 147 </p> 148<div class="table"> 149<a name="iterator.concepts.traversal.single_pass.single_pass_iterator_requirement"></a><p class="title"><b>Table 1.6. Single Pass Iterator Requirements (in addition to Incrementable 150 Iterator and Equality Comparable)</b></p> 151<div class="table-contents"><table class="table" summary="Single Pass Iterator Requirements (in addition to Incrementable 152 Iterator and Equality Comparable)"> 153<colgroup> 154<col> 155<col> 156<col> 157</colgroup> 158<thead><tr> 159<th> 160 <p> 161 Expression 162 </p> 163 </th> 164<th> 165 <p> 166 Return Type 167 </p> 168 </th> 169<th> 170 <p> 171 Assertion/Semantics / Pre-/Post-condition 172 </p> 173 </th> 174</tr></thead> 175<tbody> 176<tr> 177<td> 178 <p> 179 <code class="computeroutput"><span class="special">++</span><span class="identifier">r</span></code> 180 </p> 181 </td> 182<td> 183 <p> 184 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 185 </p> 186 </td> 187<td> 188 <p> 189 pre:<br> <code class="computeroutput"><span class="identifier">r</span></code> 190 is dereferenceable;<br> post:<br> <code class="computeroutput"><span class="identifier">r</span></code> 191 is dereferenceable or<br> <code class="computeroutput"><span class="identifier">r</span></code> 192 is past-the-end 193 </p> 194 </td> 195</tr> 196<tr> 197<td> 198 <p> 199 <code class="computeroutput"><span class="identifier">a</span> <span class="special">==</span> 200 <span class="identifier">b</span></code> 201 </p> 202 </td> 203<td> 204 <p> 205 convertible to <code class="computeroutput"><span class="keyword">bool</span></code> 206 </p> 207 </td> 208<td> 209 <p> 210 <code class="computeroutput"><span class="special">==</span></code> is an equivalence 211 relation over its domain 212 </p> 213 </td> 214</tr> 215<tr> 216<td> 217 <p> 218 <code class="computeroutput"><span class="identifier">a</span> <span class="special">!=</span> 219 <span class="identifier">b</span></code> 220 </p> 221 </td> 222<td> 223 <p> 224 convertible to <code class="computeroutput"><span class="keyword">bool</span></code> 225 </p> 226 </td> 227<td> 228 <p> 229 <code class="computeroutput"><span class="special">!(</span><span class="identifier">a</span> 230 <span class="special">==</span> <span class="identifier">b</span><span class="special">)</span></code> 231 </p> 232 </td> 233</tr> 234<tr> 235<td> 236 <p> 237 <code class="computeroutput"><span class="identifier">iterator_traits</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">difference_type</span></code> 238 </p> 239 </td> 240<td> 241 <p> 242 A signed integral type representing the distance between iterators 243 </p> 244 </td> 245<td> 246 </td> 247</tr> 248<tr> 249<td> 250 <p> 251 <code class="computeroutput"><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> 252 </p> 253 </td> 254<td> 255 <p> 256 Convertible to<code class="computeroutput"><span class="identifier">single_pass_traversal_tag</span></code> 257 </p> 258 </td> 259<td> 260 </td> 261</tr> 262</tbody> 263</table></div> 264</div> 265<br class="table-break"> 266</div> 267<div class="section"> 268<div class="titlepage"><div><div><h4 class="title"> 269<a name="iterator.concepts.traversal.forward"></a><a class="link" href="traversal.html#iterator.concepts.traversal.forward" title="Forward Traversal Concept">Forward Traversal 270 Concept</a> 271</h4></div></div></div> 272<p> 273 A class or built-in type <code class="computeroutput"><span class="identifier">X</span></code> 274 models the <span class="bold"><strong>Forward Traversal</strong></span> concept if, 275 in addition to <code class="computeroutput"><span class="identifier">X</span></code> meeting 276 the requirements of Default Constructible and Single Pass Iterator, the 277 following expressions are valid and respect the stated semantics. 278 </p> 279<div class="table"> 280<a name="iterator.concepts.traversal.forward.forward_traversal_iterator_requi"></a><p class="title"><b>Table 1.7. Forward Traversal Iterator Requirements (in addition to Default 281 Constructible and Single Pass Iterator)</b></p> 282<div class="table-contents"><table class="table" summary="Forward Traversal Iterator Requirements (in addition to Default 283 Constructible and Single Pass Iterator)"> 284<colgroup> 285<col> 286<col> 287<col> 288</colgroup> 289<thead><tr> 290<th> 291 <p> 292 Expression 293 </p> 294 </th> 295<th> 296 <p> 297 Return Type 298 </p> 299 </th> 300<th> 301 <p> 302 Assertion/Note 303 </p> 304 </th> 305</tr></thead> 306<tbody> 307<tr> 308<td> 309 <p> 310 <code class="computeroutput"><span class="identifier">X</span> <span class="identifier">u</span><span class="special">;</span></code> 311 </p> 312 </td> 313<td> 314 <p> 315 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 316 </p> 317 </td> 318<td> 319 <p> 320 note: <code class="computeroutput"><span class="identifier">u</span></code> may have 321 a singular value. 322 </p> 323 </td> 324</tr> 325<tr> 326<td> 327 <p> 328 <code class="computeroutput"><span class="special">++</span><span class="identifier">r</span></code> 329 </p> 330 </td> 331<td> 332 <p> 333 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 334 </p> 335 </td> 336<td> 337 <p> 338 <code class="computeroutput"><span class="identifier">r</span> <span class="special">==</span> 339 <span class="identifier">s</span></code> and <code class="computeroutput"><span class="identifier">r</span></code> is dereferenceable implies 340 <code class="computeroutput"><span class="special">++</span><span class="identifier">r</span> 341 <span class="special">==</span> <span class="special">++</span><span class="identifier">s</span><span class="special">.</span></code> 342 </p> 343 </td> 344</tr> 345<tr> 346<td> 347 <p> 348 <code class="computeroutput"><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> 349 </p> 350 </td> 351<td> 352 <p> 353 Convertible to <code class="computeroutput"><span class="identifier">forward_traversal_tag</span></code> 354 </p> 355 </td> 356<td> 357 </td> 358</tr> 359</tbody> 360</table></div> 361</div> 362<br class="table-break"> 363</div> 364<div class="section"> 365<div class="titlepage"><div><div><h4 class="title"> 366<a name="iterator.concepts.traversal.bidirectional"></a><a class="link" href="traversal.html#iterator.concepts.traversal.bidirectional" title="Bidirectional Traversal Concept">Bidirectional 367 Traversal Concept</a> 368</h4></div></div></div> 369<p> 370 A class or built-in type <code class="computeroutput"><span class="identifier">X</span></code> 371 models the <span class="bold"><strong>Bidirectional Traversal</strong></span> concept 372 if, in addition to <code class="computeroutput"><span class="identifier">X</span></code> meeting 373 the requirements of Forward Traversal Iterator, the following expressions 374 are valid and respect the stated semantics. 375 </p> 376<div class="table"> 377<a name="iterator.concepts.traversal.bidirectional.bidirectional_traversal_iterator"></a><p class="title"><b>Table 1.8. Bidirectional Traversal Iterator Requirements (in addition to Forward 378 Traversal Iterator)</b></p> 379<div class="table-contents"><table class="table" summary="Bidirectional Traversal Iterator Requirements (in addition to Forward 380 Traversal Iterator)"> 381<colgroup> 382<col> 383<col> 384<col> 385</colgroup> 386<thead><tr> 387<th> 388 <p> 389 Expression 390 </p> 391 </th> 392<th> 393 <p> 394 Return Type 395 </p> 396 </th> 397<th> 398 <p> 399 Assertion/Semantics/Pre-/Post-condition 400 </p> 401 </th> 402</tr></thead> 403<tbody> 404<tr> 405<td> 406 <p> 407 <code class="computeroutput"><span class="special">--</span><span class="identifier">r</span></code> 408 </p> 409 </td> 410<td> 411 <p> 412 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 413 </p> 414 </td> 415<td> 416 <p> 417 pre: there exists <code class="computeroutput"><span class="identifier">s</span></code> 418 such that <code class="computeroutput"><span class="identifier">r</span> <span class="special">==</span> <span class="special">++</span><span class="identifier">s</span></code>.<br> post: <code class="computeroutput"><span class="identifier">s</span></code> is dereferenceable. <code class="computeroutput"><span class="special">--(++</span><span class="identifier">r</span><span class="special">)</span> <span class="special">==</span> 419 <span class="identifier">r</span></code>. <code class="computeroutput"><span class="special">--</span><span class="identifier">r</span> <span class="special">==</span> 420 <span class="special">--</span><span class="identifier">s</span></code> 421 implies <code class="computeroutput"><span class="identifier">r</span> <span class="special">==</span> 422 <span class="identifier">s</span></code>. <code class="computeroutput"><span class="special">&</span><span class="identifier">r</span> <span class="special">==</span> 423 <span class="special">&--</span><span class="identifier">r</span></code>. 424 </p> 425 </td> 426</tr> 427<tr> 428<td> 429 <p> 430 <code class="computeroutput"><span class="identifier">r</span><span class="special">--</span></code> 431 </p> 432 </td> 433<td> 434 <p> 435 convertible to <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">X</span><span class="special">&</span></code> 436 </p> 437 </td> 438<td> 439<pre class="programlisting"><span class="special">{</span> 440 <span class="identifier">X</span> <span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">r</span><span class="special">;</span> 441 <span class="special">--</span><span class="identifier">r</span><span class="special">;</span> 442 <span class="keyword">return</span> <span class="identifier">tmp</span><span class="special">;</span> 443<span class="special">}</span> 444</pre> 445 </td> 446</tr> 447<tr> 448<td> 449 <p> 450 <code class="computeroutput"><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> 451 </p> 452 </td> 453<td> 454 <p> 455 Convertible to <code class="computeroutput"><span class="identifier">bidirectional_traversal_tag</span></code> 456 </p> 457 </td> 458<td> 459 </td> 460</tr> 461</tbody> 462</table></div> 463</div> 464<br class="table-break"> 465</div> 466<div class="section"> 467<div class="titlepage"><div><div><h4 class="title"> 468<a name="iterator.concepts.traversal.random_access"></a><a class="link" href="traversal.html#iterator.concepts.traversal.random_access" title="Random Access Traversal Concept">Random Access 469 Traversal Concept</a> 470</h4></div></div></div> 471<p> 472 A class or built-in type <code class="computeroutput"><span class="identifier">X</span></code> 473 models the <span class="bold"><strong>Random Access Traversal</strong></span> concept 474 if the following expressions are valid and respect the stated semantics. 475 In the table below, <code class="computeroutput"><span class="identifier">Distance</span></code> 476 is <code class="computeroutput"><span class="identifier">iterator_traits</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">difference_type</span></code> and <code class="computeroutput"><span class="identifier">n</span></code> 477 represents a constant object of type <code class="computeroutput"><span class="identifier">Distance</span></code>. 478 </p> 479<div class="table"> 480<a name="iterator.concepts.traversal.random_access.random_access_traversal_iterator"></a><p class="title"><b>Table 1.9. Random Access Traversal Iterator Requirements (in addition to Bidirectional 481 Traversal)</b></p> 482<div class="table-contents"><table class="table" summary="Random Access Traversal Iterator Requirements (in addition to Bidirectional 483 Traversal)"> 484<colgroup> 485<col> 486<col> 487<col> 488<col> 489</colgroup> 490<thead><tr> 491<th> 492 <p> 493 Expression 494 </p> 495 </th> 496<th> 497 <p> 498 Return Type 499 </p> 500 </th> 501<th> 502 <p> 503 Operational Semantics 504 </p> 505 </th> 506<th> 507 <p> 508 Assertion/Precondition 509 </p> 510 </th> 511</tr></thead> 512<tbody> 513<tr> 514<td> 515 <p> 516 <code class="computeroutput"><span class="identifier">r</span> <span class="special">+=</span> 517 <span class="identifier">n</span></code> 518 </p> 519 </td> 520<td> 521 <p> 522 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 523 </p> 524 </td> 525<td> 526<pre class="programlisting"><span class="special">{</span> 527 <span class="identifier">Distance</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">n</span><span class="special">;</span> 528 <span class="keyword">if</span> <span class="special">(</span><span class="identifier">m</span> <span class="special">>=</span> <span class="number">0</span><span class="special">)</span> 529 <span class="keyword">while</span> <span class="special">(</span><span class="identifier">m</span><span class="special">--)</span> 530 <span class="special">++</span><span class="identifier">r</span><span class="special">;</span> 531 <span class="keyword">else</span> 532 <span class="keyword">while</span> <span class="special">(</span><span class="identifier">m</span><span class="special">++)</span> 533 <span class="special">--</span><span class="identifier">r</span><span class="special">;</span> 534 <span class="keyword">return</span> <span class="identifier">r</span><span class="special">;</span> 535<span class="special">}</span> 536</pre> 537 </td> 538<td> 539 </td> 540</tr> 541<tr> 542<td> 543 <p> 544 <code class="computeroutput"><span class="identifier">a</span> <span class="special">+</span> 545 <span class="identifier">n</span></code>, <code class="computeroutput"><span class="identifier">n</span> 546 <span class="special">+</span> <span class="identifier">a</span></code> 547 </p> 548 </td> 549<td> 550 <p> 551 <code class="computeroutput"><span class="identifier">X</span></code> 552 </p> 553 </td> 554<td> 555<pre class="programlisting"><span class="special">{</span> 556 <span class="identifier">X</span> <span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span> 557 <span class="keyword">return</span> <span class="identifier">tmp</span><span class="special">+=</span> <span class="identifier">n</span><span class="special">;</span> 558<span class="special">}</span> 559</pre> 560 </td> 561<td> 562 </td> 563</tr> 564<tr> 565<td> 566 <p> 567 <code class="computeroutput"><span class="identifier">r</span> <span class="special">-=</span> 568 <span class="identifier">n</span></code> 569 </p> 570 </td> 571<td> 572 <p> 573 <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code> 574 </p> 575 </td> 576<td> 577 <p> 578 <code class="computeroutput"><span class="keyword">return</span> <span class="identifier">r</span> 579 <span class="special">+=</span> <span class="special">-</span><span class="identifier">n</span></code> 580 </p> 581 </td> 582<td> 583 </td> 584</tr> 585<tr> 586<td> 587 <p> 588 <code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span> 589 <span class="identifier">n</span></code> 590 </p> 591 </td> 592<td> 593 <p> 594 <code class="computeroutput"><span class="identifier">X</span></code> 595 </p> 596 </td> 597<td> 598<pre class="programlisting"><span class="special">{</span> 599 <span class="identifier">X</span> <span class="identifier">tmp</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span> 600 <span class="keyword">return</span> <span class="identifier">tmp</span><span class="special">-=</span> <span class="identifier">n</span><span class="special">;</span> 601<span class="special">}</span> 602</pre> 603 </td> 604<td> 605 </td> 606</tr> 607<tr> 608<td> 609 <p> 610 <code class="computeroutput"><span class="identifier">b</span> <span class="special">-</span> 611 <span class="identifier">a</span></code> 612 </p> 613 </td> 614<td> 615 <p> 616 <code class="computeroutput"><span class="identifier">Distance</span></code> 617 </p> 618 </td> 619<td> 620 <p> 621 <code class="computeroutput"><span class="identifier">a</span> <span class="special"><</span> 622 <span class="identifier">b</span> <span class="special">?</span> 623 <span class="identifier">distance</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span><span class="identifier">b</span><span class="special">)</span> 624 <span class="special">:</span> <span class="special">-</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span><span class="identifier">a</span><span class="special">)</span></code> 625 </p> 626 </td> 627<td> 628 <p> 629 pre: there exists a value <code class="computeroutput"><span class="identifier">n</span></code> 630 of <code class="computeroutput"><span class="identifier">Distance</span></code> such 631 that <code class="computeroutput"><span class="identifier">a</span> <span class="special">+</span> 632 <span class="identifier">n</span> <span class="special">==</span> 633 <span class="identifier">b</span></code>. <code class="computeroutput"><span class="identifier">b</span> 634 <span class="special">==</span> <span class="identifier">a</span> 635 <span class="special">+</span> <span class="special">(</span><span class="identifier">b</span> <span class="special">-</span> 636 <span class="identifier">a</span><span class="special">)</span></code>. 637 </p> 638 </td> 639</tr> 640<tr> 641<td> 642 <p> 643 <code class="computeroutput"><span class="identifier">a</span><span class="special">[</span><span class="identifier">n</span><span class="special">]</span></code> 644 </p> 645 </td> 646<td> 647 <p> 648 convertible to T 649 </p> 650 </td> 651<td> 652 <p> 653 <code class="computeroutput"><span class="special">*(</span><span class="identifier">a</span> 654 <span class="special">+</span> <span class="identifier">n</span><span class="special">)</span></code> 655 </p> 656 </td> 657<td> 658 <p> 659 pre: a is a <span class="bold"><strong>Readable Iterator</strong></span> 660 </p> 661 </td> 662</tr> 663<tr> 664<td> 665 <p> 666 <code class="computeroutput"><span class="identifier">a</span><span class="special">[</span><span class="identifier">n</span><span class="special">]</span> 667 <span class="special">=</span> <span class="identifier">v</span></code> 668 </p> 669 </td> 670<td> 671 <p> 672 convertible to T 673 </p> 674 </td> 675<td> 676 <p> 677 <code class="computeroutput"><span class="special">*(</span><span class="identifier">a</span> 678 <span class="special">+</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> 679 <span class="identifier">v</span></code> 680 </p> 681 </td> 682<td> 683 <p> 684 pre: a is a <span class="bold"><strong>Writable iterator</strong></span> 685 </p> 686 </td> 687</tr> 688<tr> 689<td> 690 <p> 691 <code class="computeroutput"><span class="identifier">a</span> <span class="special"><</span> 692 <span class="identifier">b</span></code> 693 </p> 694 </td> 695<td> 696 <p> 697 convertible to <code class="computeroutput"><span class="keyword">bool</span></code> 698 </p> 699 </td> 700<td> 701 <p> 702 <code class="computeroutput"><span class="identifier">b</span> <span class="special">-</span> 703 <span class="identifier">a</span> <span class="special">></span> 704 <span class="number">0</span></code> 705 </p> 706 </td> 707<td> 708 <p> 709 <code class="computeroutput"><span class="special"><</span></code> is a total 710 ordering relation 711 </p> 712 </td> 713</tr> 714<tr> 715<td> 716 <p> 717 <code class="computeroutput"><span class="identifier">a</span> <span class="special">></span> 718 <span class="identifier">b</span></code> 719 </p> 720 </td> 721<td> 722 <p> 723 convertible to <code class="computeroutput"><span class="keyword">bool</span></code> 724 </p> 725 </td> 726<td> 727 <p> 728 <code class="computeroutput"><span class="identifier">b</span> <span class="special"><</span> 729 <span class="identifier">a</span></code> 730 </p> 731 </td> 732<td> 733 <p> 734 <code class="computeroutput"><span class="special">></span></code> is a total 735 ordering relation 736 </p> 737 </td> 738</tr> 739<tr> 740<td> 741 <p> 742 <code class="computeroutput"><span class="identifier">a</span> <span class="special">>=</span> 743 <span class="identifier">b</span></code> 744 </p> 745 </td> 746<td> 747 <p> 748 convertible to <code class="computeroutput"><span class="keyword">bool</span></code> 749 </p> 750 </td> 751<td> 752 <p> 753 <code class="computeroutput"><span class="special">!(</span><span class="identifier">a</span> 754 <span class="special"><</span> <span class="identifier">b</span><span class="special">)</span></code> 755 </p> 756 </td> 757<td> 758 </td> 759</tr> 760<tr> 761<td> 762 <p> 763 <code class="computeroutput"><span class="identifier">a</span> <span class="special"><=</span> 764 <span class="identifier">b</span></code> 765 </p> 766 </td> 767<td> 768 <p> 769 convertible to <code class="computeroutput"><span class="keyword">bool</span></code> 770 </p> 771 </td> 772<td> 773 <p> 774 <code class="computeroutput"><span class="special">!(</span><span class="identifier">a</span> 775 <span class="special">></span> <span class="identifier">b</span><span class="special">)</span></code> 776 </p> 777 </td> 778<td> 779 </td> 780</tr> 781<tr> 782<td> 783 <p> 784 <code class="computeroutput"><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> 785 </p> 786 </td> 787<td> 788 <p> 789 convertible to <code class="computeroutput"><span class="identifier">random_access_traversal_tag</span></code> 790 </p> 791 </td> 792<td> 793 </td> 794<td> 795 </td> 796</tr> 797</tbody> 798</table></div> 799</div> 800<br class="table-break"> 801</div> 802</div> 803<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 804<td align="left"></td> 805<td align="right"><div class="copyright-footer">Copyright © 2003, 2005 David Abrahams Jeremy Siek Thomas 806 Witt<p> 807 Distributed under the Boost Software License, Version 1.0. (See accompanying 808 file LICENSE_1_0.txt or copy at <ulink url="http://www.boost.org/LICENSE_1_0.txt"> 809 http://www.boost.org/LICENSE_1_0.txt </ulink>) 810 </p> 811</div></td> 812</tr></table> 813<hr> 814<div class="spirit-nav"> 815<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.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="../generic.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 816</div> 817</body> 818</html> 819