• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. Copyright David Abrahams 2006. Distributed under the Boost
2.. Software License, Version 1.0. (See accompanying
3.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4
5Single Pass Iterator Concept
6............................
7
8A class or built-in type ``X`` models the *Single Pass Iterator*
9concept if the following expressions are valid and respect the stated
10semantics.
11
12
13+------------------------------------------------------------------------------------------+
14|Single Pass Iterator Requirements (in addition to Incrementable Iterator and Equality     |
15|Comparable)                                                                               |
16+--------------------------------+-----------------------------+---------------------------+
17|Expression                      |Return Type                  |Assertion/Semantics /      |
18|                                |                             |Pre-/Post-condition        |
19+================================+=============================+===========================+
20|``++r``                         |``X&``                       |pre: ``r`` is              |
21|                                |                             |dereferenceable; post:     |
22|                                |                             |``r`` is dereferenceable or|
23|                                |                             |``r`` is past-the-end      |
24+--------------------------------+-----------------------------+---------------------------+
25|``a == b``                      |convertible to ``bool``      |``==`` is an equivalence   |
26|                                |                             |relation over its domain   |
27+--------------------------------+-----------------------------+---------------------------+
28|``a != b``                      |convertible to ``bool``      |``!(a == b)``              |
29+--------------------------------+-----------------------------+---------------------------+
30|``iterator_traversal<X>::type`` |Convertible to               |                           |
31|                                |``single_pass_traversal_tag``|                           |
32+--------------------------------+-----------------------------+---------------------------+
33