forked from boostorg/range
[range] merge doc fixes (r81888, r81889) from trunk
[SVN r82138]
This commit is contained in:
@ -22,7 +22,7 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../utilities.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utilities.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sub_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section range_reference_utilities_iterator_range">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.utilities.iterator_range"></a><a class="link" href="iterator_range.html" title="Class iterator_range">Class <code class="computeroutput"><span class="identifier">iterator_range</span></code></a>
|
||||
</h4></div></div></div>
|
||||
@ -44,73 +44,72 @@
|
||||
then one can still call all its member functions. This design decision
|
||||
avoids the <code class="computeroutput"><span class="identifier">iterator_range</span></code>
|
||||
imposing limitations upon ranges of iterators that are not singular. Any
|
||||
singularity limitation is simply propogated from the underlying iterator
|
||||
singularity limitation is simply propagated from the underlying iterator
|
||||
type.
|
||||
</p>
|
||||
<a name="range.reference.utilities.iterator_range.synopsis"></a><h5>
|
||||
<a name="id758301"></a>
|
||||
<a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.synopsis">Synopsis</a>
|
||||
<h5>
|
||||
<a name="range.reference.utilities.iterator_range.h0"></a>
|
||||
<span><a name="range.reference.utilities.iterator_range.synopsis"></a></span><a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.synopsis">Synopsis</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span> <span class="special">></span>
|
||||
<span class="keyword">class</span> <span class="identifier">iterator_range</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// Forward Range types
|
||||
</span> <span class="keyword">typedef</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">iterator</span><span class="special">;</span>
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// Forward Range types</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">iterator</span><span class="special">;</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">iterator_difference</span><span class="special"><</span><span class="identifier">iterator</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">difference_type</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// construction, assignment
|
||||
</span> <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="special">></span>
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// construction, assignment</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special">(</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="identifier">Begin</span><span class="special">,</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="identifier">End</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// Forward Range functions
|
||||
</span> <span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// Forward Range functions</span>
|
||||
<span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// convenience
|
||||
</span> <span class="keyword">operator</span> <span class="identifier">unspecified_bool_type</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// convenience</span>
|
||||
<span class="keyword">operator</span> <span class="identifier">unspecified_bool_type</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">bool</span> <span class="identifier">equal</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">front</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">back</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">iterator_range</span><span class="special">&</span> <span class="identifier">advance_begin</span><span class="special">(</span><span class="identifier">difference_type</span> <span class="identifier">n</span><span class="special">);</span>
|
||||
<span class="identifier">iterator_range</span><span class="special">&</span> <span class="identifier">advance_end</span><span class="special">(</span><span class="identifier">difference_type</span> <span class="identifier">n</span><span class="special">);</span>
|
||||
<span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="comment">// for Random Access Range only:
|
||||
</span> <span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">[](</span> <span class="identifier">difference_type</span> <span class="identifier">at</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="comment">// for Random Access Range only:</span>
|
||||
<span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">[](</span> <span class="identifier">difference_type</span> <span class="identifier">at</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">value_type</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="identifier">difference_type</span> <span class="identifier">at</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="special">};</span>
|
||||
|
||||
<span class="comment">// stream output
|
||||
</span> <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span> <span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Traits</span><span class="special">>&</span>
|
||||
|
||||
<span class="comment">// stream output</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span> <span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Traits</span><span class="special">>&</span>
|
||||
<span class="keyword">operator</span><span class="special"><<(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Traits</span><span class="special">>&</span> <span class="identifier">Os</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="comment">// comparison
|
||||
</span> <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="comment">// comparison</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator2</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
@ -118,11 +117,11 @@
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator2</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
@ -130,23 +129,23 @@
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator2</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator2</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span> <span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">l</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">ForwardTraversalIterator</span><span class="special">>&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="comment">// external construction
|
||||
</span> <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span> <span class="special">></span>
|
||||
|
||||
<span class="comment">// external construction</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span> <span class="identifier">ForwardTraversalIterator</span> <span class="special">></span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">Begin</span><span class="special">,</span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">Begin</span><span class="special">,</span>
|
||||
<span class="identifier">ForwardTraversalIterator</span> <span class="identifier">End</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
@ -154,25 +153,25 @@
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Range</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">r</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_begin</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_end</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Range</span> <span class="special">></span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">r</span><span class="special">,</span>
|
||||
<span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">r</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_begin</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_end</span> <span class="special">);</span>
|
||||
|
||||
<span class="comment">// convenience
|
||||
</span> <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Sequence</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
|
||||
<span class="comment">// convenience</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Sequence</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="identifier">Sequence</span> <span class="identifier">copy_range</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="special">}</span> <span class="comment">// namespace 'boost'
|
||||
</span></pre>
|
||||
|
||||
<span class="special">}</span> <span class="comment">// namespace 'boost'</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
@ -187,9 +186,9 @@
|
||||
are comparable; for example when we are dealing with const and non-const
|
||||
iterators from the same container.
|
||||
</p>
|
||||
<a name="range.reference.utilities.iterator_range.details_member_functions"></a><h5>
|
||||
<a name="id761507"></a>
|
||||
<a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.details_member_functions">Details
|
||||
<h5>
|
||||
<a name="range.reference.utilities.iterator_range.h1"></a>
|
||||
<span><a name="range.reference.utilities.iterator_range.details_member_functions"></a></span><a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.details_member_functions">Details
|
||||
member functions</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -206,9 +205,9 @@
|
||||
<span class="identifier">end</span><span class="special">()</span>
|
||||
<span class="special">==</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span></code>
|
||||
</p></blockquote></div>
|
||||
<a name="range.reference.utilities.iterator_range.details_functions"></a><h5>
|
||||
<a name="id761741"></a>
|
||||
<a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.details_functions">Details
|
||||
<h5>
|
||||
<a name="range.reference.utilities.iterator_range.h2"></a>
|
||||
<span><a name="range.reference.utilities.iterator_range.details_functions"></a></span><a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.details_functions">Details
|
||||
functions</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -238,10 +237,9 @@
|
||||
<span class="identifier">begin</span><span class="special">(</span><span class="identifier">l</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">l</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span> <span class="special">);</span></code>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">iterator_range</span> <span class="identifier">make_iterator_range</span><span class="special">(</span> <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">r</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_begin</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_begin</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">advance_end</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
@ -250,7 +248,6 @@
|
||||
<span class="emphasis"><em><span class="bold"><strong>Effects:</strong></span></em></span>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">iterator</span> <span class="identifier">new_begin</span> <span class="special">=</span> <span class="identifier">begin</span><span class="special">(</span> <span class="identifier">r</span> <span class="special">),</span>
|
||||
<span class="identifier">iterator</span> <span class="identifier">new_end</span> <span class="special">=</span> <span class="identifier">end</span><span class="special">(</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
@ -271,7 +268,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003-2010 Thorsten Ottosen,
|
||||
Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="sub_range.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utilities.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../extending.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section range_reference_utilities_join">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.utilities.join"></a><a class="link" href="join.html" title="Function join">Function join</a>
|
||||
</h4></div></div></div>
|
||||
@ -38,12 +38,11 @@
|
||||
Note that the joined range incurs a performance cost due to the need to
|
||||
check if the end of a range has been reached internally during traversal.
|
||||
</p>
|
||||
<a name="range.reference.utilities.join.synposis"></a><h5>
|
||||
<a name="id764138"></a>
|
||||
<a class="link" href="join.html#range.reference.utilities.join.synposis">Synposis</a>
|
||||
<h5>
|
||||
<a name="range.reference.utilities.join.h0"></a>
|
||||
<span><a name="range.reference.utilities.join.synposis"></a></span><a class="link" href="join.html#range.reference.utilities.join.synposis">Synposis</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">SinglePassRange2</span><span class="special">></span>
|
||||
<span class="identifier">joined_range</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">></span>
|
||||
@ -107,9 +106,9 @@
|
||||
and <code class="computeroutput"><span class="identifier">rng2</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.utilities.join.example"></a><h5>
|
||||
<a name="id764973"></a>
|
||||
<a class="link" href="join.html#range.reference.utilities.join.example">Example</a>
|
||||
<h5>
|
||||
<a name="range.reference.utilities.join.h1"></a>
|
||||
<span><a name="range.reference.utilities.join.example"></a></span><a class="link" href="join.html#range.reference.utilities.join.example">Example</a>
|
||||
</h5>
|
||||
<p>
|
||||
The expression <code class="computeroutput"><span class="identifier">join</span><span class="special">(</span><span class="identifier">irange</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">5</span><span class="special">),</span> <span class="identifier">irange</span><span class="special">(</span><span class="number">5</span><span class="special">,</span><span class="number">10</span><span class="special">))</span></code> would
|
||||
@ -118,7 +117,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003-2010 Thorsten Ottosen,
|
||||
Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="iterator_range.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utilities.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="join.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section range_reference_utilities_sub_range">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.utilities.sub_range"></a><a class="link" href="sub_range.html" title="Class sub_range">Class <code class="computeroutput"><span class="identifier">sub_range</span></code></a>
|
||||
</h4></div></div></div>
|
||||
@ -34,60 +34,59 @@
|
||||
since it knows what a corresponding <code class="computeroutput"><span class="identifier">const_iterator</span></code>
|
||||
is.
|
||||
</p>
|
||||
<a name="range.reference.utilities.sub_range.synopsis"></a><h5>
|
||||
<a name="id762873"></a>
|
||||
<a class="link" href="sub_range.html#range.reference.utilities.sub_range.synopsis">Synopsis</a>
|
||||
<h5>
|
||||
<a name="range.reference.utilities.sub_range.h0"></a>
|
||||
<span><a name="range.reference.utilities.sub_range.synopsis"></a></span><a class="link" href="sub_range.html#range.reference.utilities.sub_range.synopsis">Synopsis</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span> <span class="special">></span>
|
||||
<span class="keyword">class</span> <span class="identifier">sub_range</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">iterator_range</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">public</span><span class="special">:</span>
|
||||
<span class="keyword">public</span><span class="special">:</span>
|
||||
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">iterator</span><span class="special">;</span>
|
||||
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">const_iterator</span><span class="special">;</span>
|
||||
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_difference</span><span class="special"><</span><span class="identifier">iterator</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">difference_type</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// construction, assignment
|
||||
</span> <span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span> <span class="special">></span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// construction, assignment</span>
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardTraversalIterator</span> <span class="special">></span>
|
||||
<span class="identifier">sub_range</span><span class="special">(</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">Begin</span><span class="special">,</span> <span class="identifier">ForwardTraversalIterator</span> <span class="identifier">End</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span> <span class="special">></span>
|
||||
<span class="identifier">sub_range</span><span class="special">(</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span> <span class="special">></span>
|
||||
<span class="identifier">sub_range</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">Range2</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span> <span class="special">></span>
|
||||
<span class="identifier">sub_range</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span> <span class="special">></span>
|
||||
<span class="identifier">sub_range</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// Forward Range functions
|
||||
</span> <span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
|
||||
<span class="identifier">sub_range</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">r</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// Forward Range functions</span>
|
||||
<span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
|
||||
<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
|
||||
<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// convenience
|
||||
</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">front</span><span class="special">();</span>
|
||||
<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span> <span class="comment">// convenience</span>
|
||||
<span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">front</span><span class="special">();</span>
|
||||
<span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">front</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">back</span><span class="special">();</span>
|
||||
<span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">back</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="comment">// for Random Access Range only:
|
||||
</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span> <span class="identifier">size_type</span> <span class="identifier">at</span> <span class="special">);</span>
|
||||
<span class="comment">// for Random Access Range only:</span>
|
||||
<span class="identifier">value_type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span> <span class="identifier">size_type</span> <span class="identifier">at</span> <span class="special">);</span>
|
||||
<span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span> <span class="identifier">size_type</span> <span class="identifier">at</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
|
||||
<span class="keyword">public</span><span class="special">:</span>
|
||||
<span class="comment">// rest of interface inherited from iterator_range
|
||||
</span> <span class="special">};</span>
|
||||
|
||||
<span class="special">}</span> <span class="comment">// namespace 'boost'
|
||||
</span></pre>
|
||||
<span class="comment">// rest of interface inherited from iterator_range</span>
|
||||
<span class="special">};</span>
|
||||
|
||||
<span class="special">}</span> <span class="comment">// namespace 'boost'</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
@ -98,7 +97,6 @@
|
||||
<code class="computeroutput"><span class="identifier">sub_range</span></code>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span><span class="special">(</span><span class="string">"hello"</span><span class="special">);</span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">></span> <span class="identifier">ir</span> <span class="special">=</span> <span class="identifier">find_first</span><span class="special">(</span> <span class="identifier">str</span><span class="special">,</span> <span class="string">"ll"</span> <span class="special">);</span>
|
||||
@ -109,7 +107,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003-2010 Thorsten Ottosen,
|
||||
Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
Reference in New Issue
Block a user