resolved Howards issue about a->m

[SVN r21646]
This commit is contained in:
Jeremy Siek
2004-01-12 20:31:44 +00:00
parent 75e76eb637
commit 08ce6903ce
2 changed files with 30 additions and 31 deletions

View File

@ -366,9 +366,9 @@ the stated semantics. <tt class="literal"><span class="pre">U</span></tt> is the
type <tt class="literal"><span class="pre">T</span></tt>.</p>
<table class="table" frame="border" rules="all">
<colgroup>
<col width="42%" />
<col width="29%" />
<col width="30%" />
<col width="20%" />
<col width="50%" />
</colgroup>
<thead valign="bottom">
<tr><th colspan="3">Readable Iterator Requirements (in addition to Assignable and Copy Constructible)</th>
@ -386,21 +386,22 @@ non-cv-qualified type</td>
</tr>
<tr><td><tt class="literal"><span class="pre">*a</span></tt></td>
<td>Convertible to <tt class="literal"><span class="pre">T</span></tt></td>
<td>pre: <tt class="literal"><span class="pre">a</span></tt> is
dereferenceable. If <tt class="literal"><span class="pre">a</span>
<span class="pre">==</span> <span class="pre">b</span></tt> then <tt class="literal"><span class="pre">*a</span></tt> is
equivalent to <tt class="literal"><span class="pre">*b</span></tt>.</td>
<td><dl class="first last">
<dt>pre: <tt class="literal"><span class="pre">a</span></tt> is dereferenceable. If <tt class="literal"><span class="pre">a</span> <span class="pre">==</span> <span class="pre">b</span></tt> then <tt class="literal"><span class="pre">*a</span></tt></dt>
<dd>is equivalent to <tt class="literal"><span class="pre">*b</span></tt>.</dd>
</dl>
</td>
</tr>
<tr><td><tt class="literal"><span class="pre">a-&gt;m</span></tt></td>
<td><tt class="literal"><span class="pre">U&amp;</span></tt></td>
<td>pre: <tt class="literal"><span class="pre">(*a).m</span></tt> is
well-defined. Equivalent
to <tt class="literal"><span class="pre">(*a).m</span></tt></td>
<td>pre: <tt class="literal"><span class="pre">static_cast&lt;T</span> <span class="pre">const&amp;&gt;(*a).m</span></tt> is well-defined. If
<tt class="literal"><span class="pre">static_cast&lt;T&amp;&gt;(*a).m</span></tt> is well-defined, equivalent to
<tt class="literal"><span class="pre">static_cast&lt;T&amp;&gt;(*a).m</span></tt>; otherwise, equivalent to
<tt class="literal"><span class="pre">static_cast&lt;T</span> <span class="pre">const&amp;&gt;(*a).m</span></tt>.</td>
</tr>
</tbody>
</table>
<!-- We won't say anything about iterator_traits<X>::reference until
the DR is resolved. -->
<!-- We won't say anything about iterator_traits<X>::reference until the DR is resolved. -JGS -->
<a class="target" id="writable-iterator" name="writable-iterator"></a></div>
<div class="section" id="writable-iterators-lib-writable-iterators">
<h4><a class="toc-backref" href="#id12" name="writable-iterators-lib-writable-iterators">Writable Iterators [lib.writable.iterators]</a></h4>
@ -880,7 +881,7 @@ LocalWords: TraversalTag typename lvalues DWA Hmm JGS mis enum -->
<hr class="footer"/>
<div class="footer">
<a class="reference" href="new-iter-concepts.rst">View document source</a>.
Generated on: 2004-01-12 20:03 UTC.
Generated on: 2004-01-12 20:31 UTC.
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>

View File

@ -360,26 +360,24 @@ Copy Constructible, the following expressions are valid and respect
the stated semantics. ``U`` is the type of any specified member of
type ``T``.
+--------------------------------------------------------------------------------------+
|Readable Iterator Requirements (in addition to Assignable and Copy Constructible) |
+-----------------------------------+------------------------+-------------------------+
|Expression |Return Type |Note/Precondition |
+===================================+========================+=========================+
|``iterator_traits<X>::value_type`` |``T`` |Any non-reference, |
| | |non-cv-qualified type |
+-----------------------------------+------------------------+-------------------------+
|``*a`` | Convertible to ``T`` |pre: ``a`` is |
| | |dereferenceable. If ``a |
| | |== b`` then ``*a`` is |
| | |equivalent to ``*b``. |
+-----------------------------------+------------------------+-------------------------+
|``a->m`` |``U&`` |pre: ``(*a).m`` is |
| | |well-defined. Equivalent|
| | |to ``(*a).m`` |
+-----------------------------------+------------------------+-------------------------+
+------------------------------------------------------------------------------------------------------------------------+
|Readable Iterator Requirements (in addition to Assignable and Copy Constructible) |
+-----------------------------------+------------------------+-----------------------------------------------------------+
|Expression |Return Type |Note/Precondition |
+===================================+========================+===========================================================+
|``iterator_traits<X>::value_type`` |``T`` |Any non-reference, |
| | |non-cv-qualified type |
+-----------------------------------+------------------------+-----------------------------------------------------------+
|``*a`` | Convertible to ``T`` |pre: ``a`` is dereferenceable. If ``a == b`` then ``*a`` |
| | | is equivalent to ``*b``. |
+-----------------------------------+------------------------+-----------------------------------------------------------+
|``a->m`` |``U&`` |pre: ``static_cast<T const&>(*a).m`` is well-defined. If |
| | |``static_cast<T&>(*a).m`` is well-defined, equivalent to |
| | |``static_cast<T&>(*a).m``; otherwise, equivalent to |
| | |``static_cast<T const&>(*a).m``. |
+-----------------------------------+------------------------+-----------------------------------------------------------+
.. We won't say anything about iterator_traits<X>::reference until
the DR is resolved.
.. We won't say anything about iterator_traits<X>::reference until the DR is resolved. -JGS
.. _Writable Iterator: