SinglePassIterator.rst 2.2 KB

1234567891011121314151617181920212223242526272829303132
  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. Single Pass Iterator Concept
  5. ............................
  6. A class or built-in type ``X`` models the *Single Pass Iterator*
  7. concept if the following expressions are valid and respect the stated
  8. semantics.
  9. +------------------------------------------------------------------------------------------+
  10. |Single Pass Iterator Requirements (in addition to Incrementable Iterator and Equality |
  11. |Comparable) |
  12. +--------------------------------+-----------------------------+---------------------------+
  13. |Expression |Return Type |Assertion/Semantics / |
  14. | | |Pre-/Post-condition |
  15. +================================+=============================+===========================+
  16. |``++r`` |``X&`` |pre: ``r`` is |
  17. | | |dereferenceable; post: |
  18. | | |``r`` is dereferenceable or|
  19. | | |``r`` is past-the-end |
  20. +--------------------------------+-----------------------------+---------------------------+
  21. |``a == b`` |convertible to ``bool`` |``==`` is an equivalence |
  22. | | |relation over its domain |
  23. +--------------------------------+-----------------------------+---------------------------+
  24. |``a != b`` |convertible to ``bool`` |``!(a == b)`` |
  25. +--------------------------------+-----------------------------+---------------------------+
  26. |``iterator_traversal<X>::type`` |Convertible to | |
  27. | |``single_pass_traversal_tag``| |
  28. +--------------------------------+-----------------------------+---------------------------+