[boost][range] - Improved the implementation of strided range to eliminate requirements for boost::size(rng) to be a valid expression. Each traversal category of strided_iterator is now individually implemented.

[SVN r67461]
This commit is contained in:
Neil Groves
2010-12-26 20:33:33 +00:00
parent fd63de33e9
commit efb7b50a8a
101 changed files with 725 additions and 669 deletions

View File

@ -27,7 +27,7 @@
<a name="range.reference.algorithms.numeric.accumulate"></a><a class="link" href="accumulate.html" title="accumulate">accumulate</a>
</h5></div></div></div>
<a name="range.reference.algorithms.numeric.accumulate.prototype"></a><h6>
<a name="id758668"></a>
<a name="id771357"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.prototype">Prototype</a>
</h6>
<p>
@ -52,7 +52,7 @@
<p>
</p>
<a name="range.reference.algorithms.numeric.accumulate.description"></a><h6>
<a name="id758929"></a>
<a name="id771619"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.description">Description</a>
</h6>
<p>
@ -63,18 +63,18 @@
The return value is the resultant value of the above algorithm.
</p>
<a name="range.reference.algorithms.numeric.accumulate.definition"></a><h6>
<a name="id759004"></a>
<a name="id771693"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.definition">Definition</a>
</h6>
<p>
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<a name="range.reference.algorithms.numeric.accumulate.requirements"></a><h6>
<a name="id759066"></a>
<a name="id771755"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.requirements">Requirements</a>
</h6>
<a name="range.reference.algorithms.numeric.accumulate.for_the_first_version"></a><h6>
<a name="id759087"></a>
<a name="id771776"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.for_the_first_version">For
the first version</a>
</h6>
@ -99,7 +99,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.accumulate.for_the_second_version"></a><h6>
<a name="id759229"></a>
<a name="id771918"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.for_the_second_version">For
the second version</a>
</h6>
@ -133,7 +133,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.accumulate.complexity"></a><h6>
<a name="id759422"></a>
<a name="id772110"></a>
<a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.complexity">Complexity</a>
</h6>
<p>

View File

@ -27,7 +27,7 @@
<a name="range.reference.algorithms.numeric.adjacent_difference"></a><a class="link" href="adjacent_difference.html" title="adjacent_difference">adjacent_difference</a>
</h5></div></div></div>
<a name="range.reference.algorithms.numeric.adjacent_difference.prototype"></a><h6>
<a name="id759487"></a>
<a name="id772177"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.prototype">Prototype</a>
</h6>
<p>
@ -54,7 +54,7 @@
<p>
</p>
<a name="range.reference.algorithms.numeric.adjacent_difference.description"></a><h6>
<a name="id759751"></a>
<a name="id772441"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.description">Description</a>
</h6>
<p>
@ -68,18 +68,18 @@
instead of <code class="computeroutput"><span class="keyword">operator</span><span class="special">-()</span></code>.
</p>
<a name="range.reference.algorithms.numeric.adjacent_difference.definition"></a><h6>
<a name="id759852"></a>
<a name="id772541"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.definition">Definition</a>
</h6>
<p>
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<a name="range.reference.algorithms.numeric.adjacent_difference.requirements"></a><h6>
<a name="id759914"></a>
<a name="id772603"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.requirements">Requirements</a>
</h6>
<a name="range.reference.algorithms.numeric.adjacent_difference.for_the_first_version"></a><h6>
<a name="id759935"></a>
<a name="id772624"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.for_the_first_version">For
the first version</a>
</h6>
@ -110,7 +110,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.adjacent_difference.for_the_second_version"></a><h6>
<a name="id760142"></a>
<a name="id772832"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.for_the_second_version">For
the second version</a>
</h6>
@ -145,7 +145,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.adjacent_difference.precondition_"></a><h6>
<a name="id760336"></a>
<a name="id773026"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.precondition_">Precondition:</a>
</h6>
<p>
@ -153,7 +153,7 @@
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is a valid range.
</p>
<a name="range.reference.algorithms.numeric.adjacent_difference.complexity"></a><h6>
<a name="id760410"></a>
<a name="id773099"></a>
<a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.complexity">Complexity</a>
</h6>
<p>

View File

@ -27,7 +27,7 @@
<a name="range.reference.algorithms.numeric.inner_product"></a><a class="link" href="inner_product.html" title="inner_product">inner_product</a>
</h5></div></div></div>
<a name="range.reference.algorithms.numeric.inner_product.prototype"></a><h6>
<a name="id760510"></a>
<a name="id773200"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.prototype">Prototype</a>
</h6>
<p>
@ -53,7 +53,7 @@
<p>
</p>
<a name="range.reference.algorithms.numeric.inner_product.description"></a><h6>
<a name="id760873"></a>
<a name="id773562"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.description">Description</a>
</h6>
<p>
@ -66,18 +66,18 @@
algorithm please see <a href="http://www.sgi.com/tech/stl/inner_product.html" target="_top">inner_product</a>.
</p>
<a name="range.reference.algorithms.numeric.inner_product.definition"></a><h6>
<a name="id760949"></a>
<a name="id773639"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.definition">Definition</a>
</h6>
<p>
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<a name="range.reference.algorithms.numeric.inner_product.requirements"></a><h6>
<a name="id761010"></a>
<a name="id773700"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.requirements">Requirements</a>
</h6>
<a name="range.reference.algorithms.numeric.inner_product.for_the_first_version"></a><h6>
<a name="id761031"></a>
<a name="id773721"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.for_the_first_version">For
the first version</a>
</h6>
@ -112,7 +112,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.inner_product.for_the_second_version"></a><h6>
<a name="id761288"></a>
<a name="id773978"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.for_the_second_version">For
the second version</a>
</h6>
@ -161,14 +161,14 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.inner_product.precondition_"></a><h6>
<a name="id761589"></a>
<a name="id774279"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.precondition_">Precondition:</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span> <span class="special">&gt;=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code> is a valid range.
</p>
<a name="range.reference.algorithms.numeric.inner_product.complexity"></a><h6>
<a name="id761662"></a>
<a name="id774351"></a>
<a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.complexity">Complexity</a>
</h6>
<p>

View File

@ -27,7 +27,7 @@
<a name="range.reference.algorithms.numeric.partial_sum"></a><a class="link" href="partial_sum.html" title="partial_sum">partial_sum</a>
</h5></div></div></div>
<a name="range.reference.algorithms.numeric.partial_sum.prototype"></a><h6>
<a name="id761728"></a>
<a name="id774417"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.prototype">Prototype</a>
</h6>
<p>
@ -48,7 +48,7 @@
<p>
</p>
<a name="range.reference.algorithms.numeric.partial_sum.description"></a><h6>
<a name="id761985"></a>
<a name="id774675"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.description">Description</a>
</h6>
<p>
@ -57,18 +57,18 @@
in the same manner as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">partial_sum</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">out_it</span><span class="special">)</span></code>. See <a href="http://www.sgi.com/tech/stl/partial_sum.html" target="_top">partial_sum</a>.
</p>
<a name="range.reference.algorithms.numeric.partial_sum.definition"></a><h6>
<a name="id762125"></a>
<a name="id774814"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.definition">Definition</a>
</h6>
<p>
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<a name="range.reference.algorithms.numeric.partial_sum.requirements"></a><h6>
<a name="id762186"></a>
<a name="id774876"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.requirements">Requirements</a>
</h6>
<a name="range.reference.algorithms.numeric.partial_sum.for_the_first_version"></a><h6>
<a name="id762206"></a>
<a name="id774896"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.for_the_first_version">For
the first version</a>
</h6>
@ -98,7 +98,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.partial_sum.for_the_second_version"></a><h6>
<a name="id762414"></a>
<a name="id775103"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.for_the_second_version">For
the second version</a>
</h6>
@ -127,7 +127,7 @@
</li>
</ol></div>
<a name="range.reference.algorithms.numeric.partial_sum.precondition_"></a><h6>
<a name="id762579"></a>
<a name="id775268"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.precondition_">Precondition:</a>
</h6>
<p>
@ -135,7 +135,7 @@
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is a valid range.
</p>
<a name="range.reference.algorithms.numeric.partial_sum.complexity"></a><h6>
<a name="id762652"></a>
<a name="id775342"></a>
<a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.complexity">Complexity</a>
</h6>
<p>