forked from boostorg/iterator
new files for iterator concepts
[SVN r22004]
This commit is contained in:
37
doc/BidirectionalTraversal.rst
Executable file
37
doc/BidirectionalTraversal.rst
Executable file
@ -0,0 +1,37 @@
|
||||
Bidirectional Traversal Concept
|
||||
...............................
|
||||
|
||||
A class or built-in type ``X`` models the *Bidirectional Traversal*
|
||||
concept if, in addition to ``X`` meeting the requirements of Forward
|
||||
Traversal Iterator, the following expressions are valid and respect
|
||||
the stated semantics.
|
||||
|
||||
+--------------------------------------------------------------------------------------+
|
||||
|Bidirectional Traversal Iterator Requirements (in addition to Forward Traversal |
|
||||
|Iterator) |
|
||||
+--------------------------------+-------------------------------+---------------------+
|
||||
|Expression |Return Type |Assertion/Semantics /|
|
||||
| | |Pre-/Post-condition |
|
||||
+================================+===============================+=====================+
|
||||
|``--r`` |``X&`` |pre: there exists |
|
||||
| | |``s`` such that ``r |
|
||||
| | |== ++s``. post: |
|
||||
| | |``s`` is |
|
||||
| | |dereferenceable. |
|
||||
| | |``--(++r) == r``. |
|
||||
| | |``--r == --s`` |
|
||||
| | |implies ``r == |
|
||||
| | |s``. ``&r == &--r``. |
|
||||
+--------------------------------+-------------------------------+---------------------+
|
||||
|``r--`` |convertible to ``const X&`` |:: |
|
||||
| | | |
|
||||
| | | { |
|
||||
| | | X tmp = r; |
|
||||
| | | --r; |
|
||||
| | | return tmp; |
|
||||
| | | } |
|
||||
+--------------------------------+-------------------------------+---------------------+
|
||||
|``iterator_traversal<X>::type`` |Convertible to | |
|
||||
| |``bidirectional_traversal_tag``| |
|
||||
| | | |
|
||||
+--------------------------------+-------------------------------+---------------------+
|
Reference in New Issue
Block a user