forked from boostorg/fusion
Rebuild fusion docs - with missing file this time.
[SVN r63731]
This commit is contained in:
@ -26,35 +26,24 @@
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate"></a><a class="link" href="accumulate.html" title="accumulate">accumulate</a>
|
||||
</h5></div></div></div>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.description"></a><h6>
|
||||
<a name="id894549"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.description"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id894568"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>,
|
||||
initial state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">accumulate</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the
|
||||
result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
|
||||
if it is the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.synopsis"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id894675"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
|
||||
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">accumulate</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
|
||||
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
|
||||
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
|
||||
the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.synopsis"></a><h6>
|
||||
<a name="id894655"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
|
||||
@ -71,10 +60,8 @@
|
||||
<span class="keyword">typename</span> <a class="link" href="../metafunctions/accumulate.html" title="accumulate"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">accumulate</span></code></a><span class="special"><</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> accumulate<span class="special">(</span>
|
||||
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id895099"></a><p class="title"><b>Table 1.41. Parameters</b></p>
|
||||
<a name="id895079"></a><p class="title"><b>Table 1.41. Parameters</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Parameters">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -83,142 +70,115 @@
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">E</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">E</span></code> in
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<p><br class="table-break">
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.expression_semantics"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id895405"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br class="table-break"><a name="fusion.algorithm.iteration.functions.accumulate.expression_semantics"></a><h6>
|
||||
<a name="id895384"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<pre class="programlisting">accumulate<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,e1),e2) ...eN)</code> where <code class="literal">e1 ...eN</code>
|
||||
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.complexity"></a><h6>
|
||||
<a name="id895488"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,e1),e2) ...eN)</code> where <code class="literal">e1 ...eN</code>
|
||||
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.complexity"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id895508"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.header"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id895589"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.header">Header</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.header"></a><h6>
|
||||
<a name="id895569"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.header">Header</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>accumulate<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>accumulate<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
</pre>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.example"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id895729"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.accumulate.example"></a><h6>
|
||||
<a name="id895709"></a>
|
||||
<a class="link" href="accumulate.html#fusion.algorithm.iteration.functions.accumulate.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
@ -233,8 +193,6 @@
|
||||
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
|
||||
<span class="identifier">assert</span><span class="special">(</span>accumulate<span class="special">(</span><span class="identifier">vec</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="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "12"<span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
|
@ -26,35 +26,24 @@
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="fusion.algorithm.iteration.functions.fold"></a><a class="link" href="fold.html" title="fold">fold</a>
|
||||
</h5></div></div></div>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.description"></a><h6>
|
||||
<a name="id887928"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.description"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id887930"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>,
|
||||
initial state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">fold</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the
|
||||
result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
|
||||
if it is the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.synopsis"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id888036"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
|
||||
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">fold</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
|
||||
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
|
||||
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
|
||||
the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.synopsis"></a><h6>
|
||||
<a name="id888033"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
|
||||
@ -71,10 +60,8 @@
|
||||
<span class="keyword">typename</span> <a class="link" href="../metafunctions/fold.html" title="fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">fold</span></code></a><span class="special"><</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> fold<span class="special">(</span>
|
||||
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id888458"></a><p class="title"><b>Table 1.37. Parameters</b></p>
|
||||
<a name="id888455"></a><p class="title"><b>Table 1.37. Parameters</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Parameters">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -83,142 +70,115 @@
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">E</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">E</span></code> in
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<p><br class="table-break">
|
||||
<a name="fusion.algorithm.iteration.functions.fold.expression_semantics"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id888763"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br class="table-break"><a name="fusion.algorithm.iteration.functions.fold.expression_semantics"></a><h6>
|
||||
<a name="id888759"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<pre class="programlisting">fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,e1),e2) ...eN)</code> where <code class="literal">e1 ...eN</code>
|
||||
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.complexity"></a><h6>
|
||||
<a name="id888864"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,e1),e2) ...eN)</code> where <code class="literal">e1 ...eN</code>
|
||||
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.complexity"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id888868"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.header"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id888950"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.header">Header</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.header"></a><h6>
|
||||
<a name="id888946"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.header">Header</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
</pre>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.example"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id889090"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.fold.example"></a><h6>
|
||||
<a name="id889086"></a>
|
||||
<a class="link" href="fold.html#fusion.algorithm.iteration.functions.fold.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
@ -233,8 +193,6 @@
|
||||
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
|
||||
<span class="identifier">assert</span><span class="special">(</span>fold<span class="special">(</span><span class="identifier">vec</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="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "12"<span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
|
@ -27,14 +27,14 @@
|
||||
<a name="fusion.algorithm.iteration.functions.for_each"></a><a class="link" href="for_each.html" title="for_each">for_each</a>
|
||||
</h5></div></div></div>
|
||||
<a name="fusion.algorithm.iteration.functions.for_each.description"></a><h6>
|
||||
<a name="id896149"></a>
|
||||
<a name="id896127"></a>
|
||||
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
Applies a unary function object to each element of a sequence.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.for_each.synopsis"></a><h6>
|
||||
<a name="id896174"></a>
|
||||
<a name="id896153"></a>
|
||||
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
@ -45,7 +45,7 @@
|
||||
<span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<div class="table">
|
||||
<a name="id896338"></a><p class="title"><b>Table 1.42. Parameters</b></p>
|
||||
<a name="id896317"></a><p class="title"><b>Table 1.42. Parameters</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Parameters">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -112,7 +112,7 @@
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><a name="fusion.algorithm.iteration.functions.for_each.expression_semantics"></a><h6>
|
||||
<a name="id896524"></a>
|
||||
<a name="id896502"></a>
|
||||
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
@ -126,21 +126,21 @@
|
||||
in <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.for_each.complexity"></a><h6>
|
||||
<a name="id896660"></a>
|
||||
<a name="id896638"></a>
|
||||
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.for_each.header"></a><h6>
|
||||
<a name="id896742"></a>
|
||||
<a name="id896721"></a>
|
||||
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.header">Header</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
</pre>
|
||||
<a name="fusion.algorithm.iteration.functions.for_each.example"></a><h6>
|
||||
<a name="id896890"></a>
|
||||
<a name="id896868"></a>
|
||||
<a class="link" href="for_each.html#fusion.algorithm.iteration.functions.for_each.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">increment</span>
|
||||
|
@ -26,35 +26,24 @@
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold"></a><a class="link" href="iter_fold.html" title="iter_fold">iter_fold</a>
|
||||
</h5></div></div></div>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.description"></a><h6>
|
||||
<a name="id891359"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.description"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id891370"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>,
|
||||
initial state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">iter_fold</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the
|
||||
result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
|
||||
if it is the first call) and iterators on each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.synopsis"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id891478"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
|
||||
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">iter_fold</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
|
||||
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
|
||||
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
|
||||
the first call) and iterators on each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.synopsis"></a><h6>
|
||||
<a name="id891467"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
|
||||
@ -71,10 +60,8 @@
|
||||
<span class="keyword">typename</span> <a class="link" href="../metafunctions/iter_fold.html" title="iter_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">iter_fold</span></code></a><span class="special"><</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> iter_fold<span class="special">(</span>
|
||||
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id891902"></a><p class="title"><b>Table 1.39. Parameters</b></p>
|
||||
<a name="id891890"></a><p class="title"><b>Table 1.39. Parameters</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Parameters">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -83,142 +70,115 @@
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each iterator <code class="computeroutput"><span class="identifier">it</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">It</span></code>
|
||||
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each iterator <code class="computeroutput"><span class="identifier">it</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">It</span></code>
|
||||
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<p><br class="table-break">
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.expression_semantics"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id892208"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br class="table-break"><a name="fusion.algorithm.iteration.functions.iter_fold.expression_semantics"></a><h6>
|
||||
<a name="id892196"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<pre class="programlisting">iter_fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,it1),it2) ...itN)</code> where <code class="literal">it1 ...itN</code>
|
||||
are consecutive iterators on the elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.complexity"></a><h6>
|
||||
<a name="id892299"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,it1),it2) ...itN)</code> where <code class="literal">it1 ...itN</code>
|
||||
are consecutive iterators on the elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.complexity"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id892311"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.header"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id892392"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.header">Header</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.header"></a><h6>
|
||||
<a name="id892380"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.header">Header</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
</pre>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.example"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id892532"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.iter_fold.example"></a><h6>
|
||||
<a name="id892520"></a>
|
||||
<a class="link" href="iter_fold.html#fusion.algorithm.iteration.functions.iter_fold.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
@ -233,8 +193,6 @@
|
||||
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
|
||||
<span class="identifier">assert</span><span class="special">(</span>iter_fold<span class="special">(</span><span class="identifier">vec</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="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "12"<span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
|
@ -26,35 +26,24 @@
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold"></a><a class="link" href="reverse_fold.html" title="reverse_fold">reverse_fold</a>
|
||||
</h5></div></div></div>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.description"></a><h6>
|
||||
<a name="id889509"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.description"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id889516"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>,
|
||||
initial state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">reverse_fold</code> returns the result of the repeated
|
||||
application of binary <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
to the result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
|
||||
if it is the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.synopsis"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id889622"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
|
||||
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">reverse_fold</code> returns the result of the repeated application
|
||||
of binary <code class="computeroutput"><span class="identifier">f</span></code> to the result
|
||||
of the previous <code class="computeroutput"><span class="identifier">f</span></code> invocation
|
||||
(<code class="computeroutput"><span class="identifier">inital_state</span></code> if it is
|
||||
the first call) and each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.synopsis"></a><h6>
|
||||
<a name="id889615"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
|
||||
@ -71,10 +60,8 @@
|
||||
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse_fold.html" title="reverse_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse_fold</span></code></a><span class="special"><</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> reverse_fold<span class="special">(</span>
|
||||
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id890045"></a><p class="title"><b>Table 1.38. Parameters</b></p>
|
||||
<a name="id890038"></a><p class="title"><b>Table 1.38. Parameters</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Parameters">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -83,142 +70,115 @@
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">E</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>e<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>E<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each element <code class="computeroutput"><span class="identifier">e</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">E</span></code> in
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<p><br class="table-break">
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.expression_semantics"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id890352"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br class="table-break"><a name="fusion.algorithm.iteration.functions.reverse_fold.expression_semantics"></a><h6>
|
||||
<a name="id890344"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<pre class="programlisting">reverse_fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,eN),eN-1) ...e1)</code> where <code class="literal">e1 ...eN</code>
|
||||
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.complexity"></a><h6>
|
||||
<a name="id890447"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,eN),eN-1) ...e1)</code> where <code class="literal">e1 ...eN</code>
|
||||
are the consecutive elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.complexity"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id890455"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.header"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id890537"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.header">Header</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.header"></a><h6>
|
||||
<a name="id890529"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.header">Header</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>reverse_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>reverse_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
</pre>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.example"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id890676"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_fold.example"></a><h6>
|
||||
<a name="id890668"></a>
|
||||
<a class="link" href="reverse_fold.html#fusion.algorithm.iteration.functions.reverse_fold.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
@ -233,8 +193,6 @@
|
||||
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
|
||||
<span class="identifier">assert</span><span class="special">(</span>reverse_fold<span class="special">(</span><span class="identifier">vec</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="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "21"<span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
|
@ -26,35 +26,24 @@
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold"></a><a class="link" href="reverse_iter_fold.html" title="reverse_iter_fold">reverse_iter_fold</a>
|
||||
</h5></div></div></div>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.description"></a><h6>
|
||||
<a name="id892955"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.description"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id892971"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>,
|
||||
initial state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">reverse_iter_fold</code> returns the result of the repeated
|
||||
application of binary <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
to the result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
|
||||
if it is the first call) and iterators on each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.synopsis"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id893077"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
For a sequence <code class="computeroutput"><span class="identifier">seq</span></code>, initial
|
||||
state <code class="computeroutput"><span class="identifier">initial_state</span></code>,
|
||||
and binary function object or function pointer <code class="computeroutput"><span class="identifier">f</span></code>,
|
||||
<code class="literal">reverse_iter_fold</code> returns the result of the repeated
|
||||
application of binary <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
to the result of the previous <code class="computeroutput"><span class="identifier">f</span></code>
|
||||
invocation (<code class="computeroutput"><span class="identifier">inital_state</span></code>
|
||||
if it is the first call) and iterators on each element of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.synopsis"></a><h6>
|
||||
<a name="id893061"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.synopsis">Synopsis</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">State</span><span class="special">,</span>
|
||||
@ -71,10 +60,8 @@
|
||||
<span class="keyword">typename</span> <a class="link" href="../metafunctions/reverse_iter_fold.html" title="reverse_iter_fold"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">reverse_iter_fold</span></code></a><span class="special"><</span><span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> reverse_iter_fold<span class="special">(</span>
|
||||
<span class="identifier">Sequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">,</span> <span class="identifier">State</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id893501"></a><p class="title"><b>Table 1.40. Parameters</b></p>
|
||||
<a name="id893485"></a><p class="title"><b>Table 1.40. Parameters</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Parameters">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -83,142 +70,115 @@
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Parameter
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Requirement
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
A model of <a class="link" href="../../../sequence/concepts/forward_sequence.html" title="Forward Sequence">Forward
|
||||
Sequence</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">initial_state</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Any type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Initial state
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each iterator <code class="computeroutput"><span class="identifier">it</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">It</span></code>
|
||||
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>it<span class="special">)</span></code> with return type <code class="computeroutput"><a href="http://www.boost.org/libs/utility/utility.htm#result_of" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span></code></a><span class="special"><</span><span class="identifier">F</span><span class="special">(</span><span class="identifier">S</span><span class="special">,</span>It<span class="special">)>::</span><span class="identifier">type</span></code> must be a valid expression
|
||||
for current state <code class="computeroutput"><span class="identifier">s</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">S</span></code>,
|
||||
and for each iterator <code class="computeroutput"><span class="identifier">it</span></code>
|
||||
of type <code class="computeroutput"><span class="identifier">It</span></code>
|
||||
on an element of <code class="computeroutput"><span class="identifier">seq</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
<p>
|
||||
Operation's argument
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<p><br class="table-break">
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.expression_semantics"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id893807"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<br class="table-break"><a name="fusion.algorithm.iteration.functions.reverse_iter_fold.expression_semantics"></a><h6>
|
||||
<a name="id893790"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.expression_semantics">Expression
|
||||
Semantics</a>
|
||||
</h6>
|
||||
<pre class="programlisting">reverse_iter_fold<span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">initial_state</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Return type</strong></span>: Any type
|
||||
</p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,itN),itN-1) ...it1)</code> where <code class="literal">it1 ...itN</code>
|
||||
are consecutive iterators on the elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.complexity"></a><h6>
|
||||
<a name="id893896"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Semantics</strong></span>: Equivalent to <code class="literal">f(...
|
||||
f(f(initial_state,itN),itN-1) ...it1)</code> where <code class="literal">it1
|
||||
...itN</code> are consecutive iterators on the elements of <code class="computeroutput"><span class="identifier">seq</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.complexity"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id893912"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.header"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id893993"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.header">Header</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
Linear, exactly <code class="computeroutput"><a class="link" href="../../../sequence/intrinsic/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"><</span><span class="identifier">Sequence</span><span class="special">>::</span><span class="identifier">value</span></code> applications of <code class="computeroutput"><span class="identifier">f</span></code>.
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.header"></a><h6>
|
||||
<a name="id893976"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.header">Header</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">/</span>reverse_iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span>reverse_iter_fold<span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
</pre>
|
||||
<p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.example"></a>
|
||||
</p>
|
||||
<h6>
|
||||
<a name="id894133"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<a name="fusion.algorithm.iteration.functions.reverse_iter_fold.example"></a><h6>
|
||||
<a name="id894116"></a>
|
||||
<a class="link" href="reverse_iter_fold.html#fusion.algorithm.iteration.functions.reverse_iter_fold.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">make_string</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
@ -233,8 +193,6 @@
|
||||
<span class="keyword">const</span> <a class="link" href="../../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">(</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">);</span>
|
||||
<span class="identifier">assert</span><span class="special">(</span>reverse_iter_fold<span class="special">(</span><span class="identifier">vec</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="string">""</span><span class="special">),</span> <span class="identifier">make_string</span><span class="special">())</span> <span class="special">==</span> "21"<span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
|
Reference in New Issue
Block a user