2004-01-27 17:03:46 +00:00
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
2004-11-02 14:31:27 +00:00
< meta name = "generator" content = "Docutils 0.3.6: http://docutils.sourceforge.net/" / >
2004-01-27 17:03:46 +00:00
< title > Bidirectional Traversal Concept< / title >
< link rel = "stylesheet" href = "default.css" type = "text/css" / >
< / head >
< body >
< h1 class = "title" > Bidirectional Traversal Concept< / h1 >
2004-11-02 14:31:27 +00:00
< div class = "document" id = "bidirectional-traversal-concept" >
2004-01-27 17:03:46 +00:00
< p > A class or built-in type < tt class = "literal" > < span class = "pre" > X< / span > < / tt > models the < em > Bidirectional Traversal< / em >
concept if, in addition to < tt class = "literal" > < span class = "pre" > X< / span > < / tt > meeting the requirements of Forward
Traversal Iterator, the following expressions are valid and respect
the stated semantics.< / p >
2004-11-02 14:31:27 +00:00
< table border = "1" class = "table" >
2004-01-27 17:03:46 +00:00
< colgroup >
< col width = "38%" / >
< col width = "37%" / >
< col width = "25%" / >
< / colgroup >
< thead valign = "bottom" >
< tr > < th colspan = "3" > Bidirectional Traversal Iterator Requirements (in addition to Forward Traversal
Iterator)< / th >
< / tr >
< tr > < th > Expression< / th >
< th > Return Type< / th >
< th > Assertion/Semantics /
Pre-/Post-condition< / th >
< / tr >
< / thead >
< tbody valign = "top" >
< tr > < td > < tt class = "literal" > < span class = "pre" > --r< / span > < / tt > < / td >
< td > < tt class = "literal" > < span class = "pre" > X& < / span > < / tt > < / td >
< td > pre: there exists
< tt class = "literal" > < span class = "pre" > s< / span > < / tt > such that < tt class = "literal" > < span class = "pre" > r< / span >
< span class = "pre" > ==< / span > < span class = "pre" > ++s< / span > < / tt > . post:
< tt class = "literal" > < span class = "pre" > s< / span > < / tt > is
dereferenceable.
< tt class = "literal" > < span class = "pre" > --(++r)< / span > < span class = "pre" > ==< / span > < span class = "pre" > r< / span > < / tt > .
< tt class = "literal" > < span class = "pre" > --r< / span > < span class = "pre" > ==< / span > < span class = "pre" > --s< / span > < / tt >
implies < tt class = "literal" > < span class = "pre" > r< / span > < span class = "pre" > ==< / span >
< span class = "pre" > s< / span > < / tt > . < tt class = "literal" > < span class = "pre" > & r< / span > < span class = "pre" > ==< / span > < span class = "pre" > & --r< / span > < / tt > .< / td >
< / tr >
< tr > < td > < tt class = "literal" > < span class = "pre" > r--< / span > < / tt > < / td >
< td > convertible to < tt class = "literal" > < span class = "pre" > const< / span > < span class = "pre" > X& < / span > < / tt > < / td >
< td > < pre class = "first last literal-block" >
{
X tmp = r;
--r;
return tmp;
}
< / pre >
< / td >
< / tr >
< tr > < td > < tt class = "literal" > < span class = "pre" > iterator_traversal< X> ::type< / span > < / tt > < / td >
< td > Convertible to
< tt class = "literal" > < span class = "pre" > bidirectional_traversal_tag< / span > < / tt > < / td >
< td > < / td >
< / tr >
< / tbody >
< / table >
< / div >
< hr class = "footer" / >
< div class = "footer" >
< a class = "reference" href = "BidirectionalTraversal.rst" > View document source< / a > .
Generated by < a class = "reference" href = "http://docutils.sourceforge.net/" > Docutils< / a > from < a class = "reference" href = "http://docutils.sourceforge.net/rst.html" > reStructuredText< / a > source.
< / div >
< / body >
< / html >