Back to Arangodb

Bidirectional Traversal Concept

3rdParty/boost/1.78.0/libs/iterator/doc/BidirectionalTraversal.rst

3.12.9.13.0 KB
Original Source

.. Copyright David Abrahams 2006. Distributed under the Boost .. Software License, Version 1.0. (See accompanying .. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

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| | | | | | +--------------------------------+-------------------------------+---------------------+