mirror of
https://github.com/boostorg/iterator.git
synced 2025-07-29 20:37:17 +02:00
changes from Thomas for Interoperable Iterators
[SVN r21706]
This commit is contained in:
@ -827,13 +827,12 @@ random_access_traversal_tag for consistency -->
|
||||
<h4><a class="toc-backref" href="#id21" name="interoperable-iterators-lib-interoperable-iterators">Interoperable Iterators [lib.interoperable.iterators]</a></h4>
|
||||
<p>A class or built-in type <tt class="literal"><span class="pre">X</span></tt> that models Single Pass Iterator is
|
||||
<em>interoperable with</em> a class or built-in type <tt class="literal"><span class="pre">Y</span></tt> that also models
|
||||
Single Pass Iterator if both <tt class="literal"><span class="pre">X</span></tt> and <tt class="literal"><span class="pre">Y</span></tt> have the same traversal
|
||||
tag and if the following expressions are valid and respect the stated
|
||||
semantics. In the tables below, <tt class="literal"><span class="pre">x</span></tt> is an object of type <tt class="literal"><span class="pre">X</span></tt>,
|
||||
<tt class="literal"><span class="pre">y</span></tt> is an object of type <tt class="literal"><span class="pre">Y</span></tt>, <tt class="literal"><span class="pre">Distance</span></tt> is
|
||||
Single Pass Iterator if the following expressions are valid and
|
||||
respect the stated semantics. In the tables below, <tt class="literal"><span class="pre">x</span></tt> is an object
|
||||
of type <tt class="literal"><span class="pre">X</span></tt>, <tt class="literal"><span class="pre">y</span></tt> is an object of type <tt class="literal"><span class="pre">Y</span></tt>, <tt class="literal"><span class="pre">Distance</span></tt> is
|
||||
<tt class="literal"><span class="pre">iterator_traits<Y>::difference_type</span></tt>, and <tt class="literal"><span class="pre">n</span></tt> represents a
|
||||
constant object of type <tt class="literal"><span class="pre">Distance</span></tt>.</p>
|
||||
<p>If the traversal tag for <tt class="literal"><span class="pre">X</span></tt> and <tt class="literal"><span class="pre">Y</span></tt> is convertible to
|
||||
<p>If the traversal tags for <tt class="literal"><span class="pre">X</span></tt> and <tt class="literal"><span class="pre">Y</span></tt> are convertible to
|
||||
<tt class="literal"><span class="pre">single_pass_traversal_tag</span></tt> then the following requirements must be
|
||||
met.</p>
|
||||
<table border class="table">
|
||||
@ -875,7 +874,7 @@ met.</p>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>If the traversal tag for <tt class="literal"><span class="pre">X</span></tt> and <tt class="literal"><span class="pre">Y</span></tt> is convertible to
|
||||
<p>If the traversal tags for <tt class="literal"><span class="pre">X</span></tt> and <tt class="literal"><span class="pre">Y</span></tt> are convertible to
|
||||
<tt class="literal"><span class="pre">random_access_traversal_tag</span></tt> then the following requirements must
|
||||
be met.</p>
|
||||
<table border class="table">
|
||||
|
@ -669,14 +669,13 @@ Interoperable Iterators [lib.interoperable.iterators]
|
||||
|
||||
A class or built-in type ``X`` that models Single Pass Iterator is
|
||||
*interoperable with* a class or built-in type ``Y`` that also models
|
||||
Single Pass Iterator if both ``X`` and ``Y`` have the same traversal
|
||||
tag and if the following expressions are valid and respect the stated
|
||||
semantics. In the tables below, ``x`` is an object of type ``X``,
|
||||
``y`` is an object of type ``Y``, ``Distance`` is
|
||||
Single Pass Iterator if the following expressions are valid and
|
||||
respect the stated semantics. In the tables below, ``x`` is an object
|
||||
of type ``X``, ``y`` is an object of type ``Y``, ``Distance`` is
|
||||
``iterator_traits<Y>::difference_type``, and ``n`` represents a
|
||||
constant object of type ``Distance``.
|
||||
|
||||
If the traversal tag for ``X`` and ``Y`` is convertible to
|
||||
If the traversal tags for ``X`` and ``Y`` are convertible to
|
||||
``single_pass_traversal_tag`` then the following requirements must be
|
||||
met.
|
||||
|
||||
@ -696,7 +695,7 @@ met.
|
||||
|``y != x`` |convertible to ``bool`` |``bool(a==b) != bool(a!=b)`` over its domain. |
|
||||
+-------------------------------------------+-------------------------------------------------+---------------------------------------------------+
|
||||
|
||||
If the traversal tag for ``X`` and ``Y`` is convertible to
|
||||
If the traversal tags for ``X`` and ``Y`` are convertible to
|
||||
``random_access_traversal_tag`` then the following requirements must
|
||||
be met.
|
||||
|
||||
|
Reference in New Issue
Block a user