revises function object concepts and functional module documenation to reflect

boost::result_of-based result computation


[SVN r38209]
This commit is contained in:
Tobias Schwinger
2007-07-13 19:25:34 +00:00
parent f05493abf0
commit 9df373af5f
227 changed files with 10684 additions and 4457 deletions

View File

@ -30,7 +30,7 @@
Sequence">Forward
Sequence</a></h4></div></div></div>
<a name="fusion.sequences.concepts.forward_sequence.description"></a><h5>
<a name="id962273"></a>
<a name="id969927"></a>
<a href="forward_sequence.html#fusion.sequences.concepts.forward_sequence.description">Description</a>
</h5>
<p>
@ -62,7 +62,7 @@
</dl>
</div>
<a name="fusion.sequences.concepts.forward_sequence.valid_expressions"></a><h5>
<a name="id962377"></a>
<a name="id970029"></a>
<a href="forward_sequence.html#fusion.sequences.concepts.forward_sequence.valid_expressions">Valid
Expressions</a>
</h5>
@ -77,65 +77,169 @@
<col>
</colgroup>
<thead><tr>
<th>Expression</th>
<th>Return type</th>
<th>Type Requirements</th>
<th>Runtime
Complexity</th>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Return type
</p>
</th>
<th>
<p>
Type Requirements
</p>
</th>
<th>
<p>
Runtime Complexity
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td><a href="../../iterators/concepts/forward_iterator.html" title="Forward
Iterator">Forward Iterator</a></td>
<td><EFBFBD></td>
<td>Constant</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td><a href="../../iterators/concepts/forward_iterator.html" title="Forward
Iterator">Forward Iterator</a></td>
<td><EFBFBD></td>
<td>Constant</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/size.html" title="size"><code class="computeroutput"><span class="identifier">size</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>
<a href="http://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Integral Constant</a>. Convertible to int.</td>
<td><EFBFBD></td>
<td>Constant</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">empty</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<a href="http://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>. Convertible to bool.</td>
<td><EFBFBD></td>
<td>Constant</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>Any
type</td>
<td><EFBFBD></td>
<td>Constant</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">o</span></code></td>
<td>Any
type</td>
<p>
<a href="../../iterators/concepts/forward_iterator.html" title="Forward
Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<code class="computeroutput"><span class="identifier">s</span></code>
is mutable and <code class="computeroutput"><span class="identifier">e</span> <span class="special">=</span> <span class="identifier">o</span></code>,
where <code class="computeroutput"><span class="identifier">e</span></code> is the first
element in the sequence, is a valid expression.</td>
<td>Constant</td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<a href="../../iterators/concepts/forward_iterator.html" title="Forward
Iterator">Forward
Iterator</a>
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/size.html" title="size"><code class="computeroutput"><span class="identifier">size</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<a href="http://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Integral Constant</a>. Convertible to int.
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">empty</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<a href="http://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>. Convertible to bool.
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span>
<span class="special">=</span> <span class="identifier">o</span></code>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">s</span></code> is mutable and
<code class="computeroutput"><span class="identifier">e</span> <span class="special">=</span>
<span class="identifier">o</span></code>, where <code class="computeroutput"><span class="identifier">e</span></code> is the first element in the
sequence, is a valid expression.
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.sequences.concepts.forward_sequence.result_type_expressions"></a><h5>
<a name="id962761"></a>
<a name="id970547"></a>
<a href="forward_sequence.html#fusion.sequences.concepts.forward_sequence.result_type_expressions">Result
Type Expressions</a>
</h5>
@ -145,37 +249,82 @@
<col>
</colgroup>
<thead><tr>
<th>Expression</th>
<th>Compile Time Complexity</th>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Compile Time Complexity
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/metafunctions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">begin</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
<td>Amortized constant
time</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/metafunctions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">begin</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/metafunctions/end.html" title="end"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">end</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
<td>Amortized constant
time</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/metafunctions/end.html" title="end"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">end</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
<td>Unspecified</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/metafunctions/size.html" title="size"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">size</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
Unspecified
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/metafunctions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">empty</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
<td>Constant time</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/metafunctions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">empty</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
Constant time
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/metafunctions/front.html" title="front"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">front</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code></td>
<td>Amortized constant
time</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/metafunctions/front.html" title="front"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">front</span></code></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.sequences.concepts.forward_sequence.expression_semantics"></a><h5>
<a name="id963070"></a>
<a name="id970916"></a>
<a href="forward_sequence.html#fusion.sequences.concepts.forward_sequence.expression_semantics">Expression
Semantics</a>
</h5>
@ -185,42 +334,85 @@
<col>
</colgroup>
<thead><tr>
<th>Expression</th>
<th>Semantics</th>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Semantics
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>An
iterator to the first element of the sequence; see <a href="../intrinsics/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a>.</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
An iterator to the first element of the sequence; see <a href="../intrinsics/functions/begin.html" title="begin"><code class="computeroutput"><span class="identifier">begin</span></code></a>.
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>A
past-the-end iterator to the sequence; see <a href="../intrinsics/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a>.</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
A past-the-end iterator to the sequence; see <a href="../intrinsics/functions/end.html" title="end"><code class="computeroutput"><span class="identifier">end</span></code></a>.
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/size.html" title="size"><code class="computeroutput"><span class="identifier">size</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>The
size of the sequence; see <a href="../intrinsics/functions/size.html" title="size"><code class="computeroutput"><span class="identifier">size</span></code></a>.</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/size.html" title="size"><code class="computeroutput"><span class="identifier">size</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
The size of the sequence; see <a href="../intrinsics/functions/size.html" title="size"><code class="computeroutput"><span class="identifier">size</span></code></a>.
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">empty</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>A
boolean Integral Constant <code class="computeroutput"><span class="identifier">c</span></code>
such that <code class="computeroutput"><span class="identifier">c</span><span class="special">::</span><span class="identifier">value</span> <span class="special">==</span>
<span class="keyword">true</span></code> if and only if the sequence
is empty; see <a href="../intrinsics/functions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">empty</span></code></a>.</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">empty</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
A boolean Integral Constant <code class="computeroutput"><span class="identifier">c</span></code>
such that <code class="computeroutput"><span class="identifier">c</span><span class="special">::</span><span class="identifier">value</span> <span class="special">==</span>
<span class="keyword">true</span></code> if and only if the
sequence is empty; see <a href="../intrinsics/functions/empty.html" title="empty"><code class="computeroutput"><span class="identifier">empty</span></code></a>.
</p>
</td>
</tr>
<tr>
<td><code class="computeroutput"><a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></td>
<td>The
first element in the sequence; see <a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a>.</td>
<td>
<p>
<code class="computeroutput"><a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
The first element in the sequence; see <a href="../intrinsics/functions/front.html" title="front"><code class="computeroutput"><span class="identifier">front</span></code></a>.
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.sequences.concepts.forward_sequence.invariants"></a><h5>
<a name="id963416"></a>
<a name="id971330"></a>
<a href="forward_sequence.html#fusion.sequences.concepts.forward_sequence.invariants">Invariants</a>
</h5>
<p>
@ -246,7 +438,7 @@
</li>
</ul></div>
<a name="fusion.sequences.concepts.forward_sequence.models"></a><h5>
<a name="id963684"></a>
<a name="id971608"></a>
<a href="forward_sequence.html#fusion.sequences.concepts.forward_sequence.models">Models</a>
</h5>
<div class="itemizedlist"><ul type="disc">
@ -263,6 +455,7 @@
<li><a href="../views/joint_view.html" title="joint_view"><code class="computeroutput"><span class="identifier">joint_view</span></code></a></li>
<li><a href="../views/transform_view.html" title="transform_view"><code class="computeroutput"><span class="identifier">transform_view</span></code></a></li>
<li><a href="../views/reverse_view.html" title="reverse_view"><code class="computeroutput"><span class="identifier">reverse_view</span></code></a></li>
<li><a href="../views/zip_view.html" title="zip_view"><code class="computeroutput"><span class="identifier">zip_view</span></code></a></li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>