<p>The expression <ttclass="literal"><spanclass="pre">*v</span></tt>, where <ttclass="literal"><spanclass="pre">v</span></tt> is an object of
<ttclass="literal"><spanclass="pre">iterator_traits<Iterator>::value_type</span></tt>, shall be valid
expression and convertible to <ttclass="literal"><spanclass="pre">reference</span></tt>. <ttclass="literal"><spanclass="pre">Iterator</span></tt> shall
model the traversal concept indicated by <ttclass="literal"><spanclass="pre">iterator_category</span></tt>.
<ttclass="literal"><spanclass="pre">Value</span></tt>, <ttclass="literal"><spanclass="pre">Reference</span></tt>, and <ttclass="literal"><spanclass="pre">Difference</span></tt> shall be chosen so
that <ttclass="literal"><spanclass="pre">value_type</span></tt>, <ttclass="literal"><spanclass="pre">reference</span></tt>, and <ttclass="literal"><spanclass="pre">difference_type</span></tt> meet
the requirements indicated by <ttclass="literal"><spanclass="pre">iterator_category</span></tt>.</p>
<p>[Note: there are further requirements on the
<ttclass="literal"><spanclass="pre">iterator_traits<Iterator>::value_type</span></tt> if the <ttclass="literal"><spanclass="pre">Value</span></tt>
parameter is not <ttclass="literal"><spanclass="pre">use_default</span></tt>, as implied by the algorithm for
deducing the default for the <ttclass="literal"><spanclass="pre">value_type</span></tt> member.]</p>
<li>Lvalue Iterator if <ttclass="literal"><spanclass="pre">reference</span></tt> is a reference type.</li>
</ul>
</blockquote>
<p><ttclass="literal"><spanclass="pre">indirect_iterator<X,V1,C1,R1,D1></span></tt> is interoperable with
<ttclass="literal"><spanclass="pre">indirect_iterator<Y,V2,C2,R2,D2></span></tt> if and only if <ttclass="literal"><spanclass="pre">X</span></tt> is
interoperable with <ttclass="literal"><spanclass="pre">Y</span></tt>.</p>
<trclass="field"><thclass="field-name">Requires:</th><tdclass="field-body"><ttclass="literal"><spanclass="pre">Iterator</span></tt> must be Default Constructible.</td>
<trclass="field"><thclass="field-name">Effects:</th><tdclass="field-body">Constructs an instance of <ttclass="literal"><spanclass="pre">indirect_iterator</span></tt> with
a default-constructed <ttclass="literal"><spanclass="pre">m_iterator</span></tt>.</td>
<trclass="field"><thclass="field-name">Effects:</th><tdclass="field-body">Constructs an instance of <ttclass="literal"><spanclass="pre">indirect_iterator</span></tt> with
<ttclass="literal"><spanclass="pre">m_iterator</span></tt> copy constructed from <ttclass="literal"><spanclass="pre">x</span></tt>.</td>
<trclass="field"><thclass="field-name">Requires:</th><tdclass="field-body"><ttclass="literal"><spanclass="pre">Iterator2</span></tt> is implicitly convertible to <ttclass="literal"><spanclass="pre">Iterator</span></tt>.</td>
<trclass="field"><thclass="field-name">Effects:</th><tdclass="field-body">Constructs an instance of <ttclass="literal"><spanclass="pre">indirect_iterator</span></tt> whose
<ttclass="literal"><spanclass="pre">m_iterator</span></tt> subobject is constructed from <ttclass="literal"><spanclass="pre">y.base()</span></tt>.</td>
Generated by <aclass="reference"href="http://docutils.sourceforge.net/">Docutils</a> from <aclass="reference"href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.