diff options
Diffstat (limited to 'doc/html/proto/appendices.html')
-rw-r--r--[-rwxr-xr-x] | doc/html/proto/appendices.html | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/doc/html/proto/appendices.html b/doc/html/proto/appendices.html index 66cb99de85..24ff30a37c 100755..100644 --- a/doc/html/proto/appendices.html +++ b/doc/html/proto/appendices.html @@ -43,6 +43,24 @@ </h3></div></div></div> <h5> <a name="boost_proto.appendices.release_notes.h0"></a> + <span><a name="boost_proto.appendices.release_notes.boost_1_51"></a></span><a class="link" href="appendices.html#boost_proto.appendices.release_notes.boost_1_51">Boost + 1.51</a> + </h5> +<p> + <span class="bold"><strong>Unpacking Expressions</strong></span> + </p> +<p> + In Boost 1.51, Proto got simple unpacking patterns. When working with Proto + transforms, unpacking expressions are useful for unpacking the children of + an expression into a function call or an object constructor, while optionally + applying some transformations to each child in turn. + </p> +<p> + See the <a class="link" href="users_guide.html#boost_proto.users_guide.back_end.expression_transformation.unpacking_expressions" title="Unpacking Expressions">Unpacking + Expressions</a> section for more information. + </p> +<h5> +<a name="boost_proto.appendices.release_notes.h1"></a> <span><a name="boost_proto.appendices.release_notes.boost_1_44"></a></span><a class="link" href="appendices.html#boost_proto.appendices.release_notes.boost_1_44">Boost 1.44</a> </h5> @@ -62,13 +80,23 @@ when evaluated with an expression <code class="computeroutput"><span class="identifier">e</span></code> now behaves like this: </p> -<pre class="programlisting"><span class="special">(</span><span class="identifier">G0</span><span class="special">()(</span><span class="identifier">e</span><span class="special">),</span> <span class="identifier">G1</span><span class="special">()(</span><span class="identifier">e</span><span class="special">),</span> <span class="identifier">G2</span><span class="special">()(</span><span class="identifier">e</span><span class="special">))</span> +<pre class="programlisting"><span class="special">((</span><span class="keyword">void</span><span class="special">)</span><span class="identifier">G0</span><span class="special">()(</span><span class="identifier">e</span><span class="special">),</span> <span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="identifier">G1</span><span class="special">()(</span><span class="identifier">e</span><span class="special">),</span> <span class="identifier">G2</span><span class="special">()(</span><span class="identifier">e</span><span class="special">))</span> </pre> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + Why the void casts? It's to avoid argument-dependent lookup, which might + find an overloaded comma operator. + </p></td></tr> +</table></div> <p> <span class="bold"><strong>Behavior Change: proto::as_expr() and proto::as_child()</strong></span> </p> <p> - The functions <code class="computeroutput"><a class="link" href="../boost/proto/as_expr_id1527385.html" title="Function as_expr">proto::as_expr()</a></code> and <code class="computeroutput"><a class="link" href="../boost/proto/as_child_id1527575.html" title="Function as_child">proto::as_child()</a></code> + The functions <code class="computeroutput"><a class="link" href="../boost/proto/as_expr_id1550672.html" title="Function as_expr">proto::as_expr()</a></code> and <code class="computeroutput"><a class="link" href="../boost/proto/as_child_id1550862.html" title="Function as_child">proto::as_child()</a></code> are used to guarantee that an object is a Proto expression by turning it into one if it is not already, using an optionally specified domain. In previous releases, when these functions were passed a Proto expression in a domain @@ -173,8 +201,8 @@ 1.44, users now have this power. </p> <p> - Users defining their own domain can now specify how <code class="computeroutput"><a class="link" href="../boost/proto/as_expr_id1527385.html" title="Function as_expr">proto::as_expr()</a></code> - and <code class="computeroutput"><a class="link" href="../boost/proto/as_child_id1527575.html" title="Function as_child">proto::as_child()</a></code> work in their domain. They + Users defining their own domain can now specify how <code class="computeroutput"><a class="link" href="../boost/proto/as_expr_id1550672.html" title="Function as_expr">proto::as_expr()</a></code> + and <code class="computeroutput"><a class="link" href="../boost/proto/as_child_id1550862.html" title="Function as_child">proto::as_child()</a></code> work in their domain. They can do this easily by defining nested class templates named <code class="computeroutput"><span class="identifier">as_expr</span></code> and/or <code class="computeroutput"><span class="identifier">as_child</span></code> within their domain class. </p> @@ -205,7 +233,7 @@ that the compiler may or may not be able to optimize away.) </p> <h5> -<a name="boost_proto.appendices.release_notes.h1"></a> +<a name="boost_proto.appendices.release_notes.h2"></a> <span><a name="boost_proto.appendices.release_notes.boost_1_43"></a></span><a class="link" href="appendices.html#boost_proto.appendices.release_notes.boost_1_43">Boost 1.43</a> </h5> @@ -291,7 +319,7 @@ <dl> <dt><span class="term">August ??, 2010</span></dt> <dd><p> - Boost 1.44: Proto gets sub-domains and per-domain control of <code class="computeroutput"><a class="link" href="../boost/proto/as_expr_id1527385.html" title="Function as_expr">proto::as_expr()</a></code> and <code class="computeroutput"><a class="link" href="../boost/proto/as_child_id1527575.html" title="Function as_child">proto::as_child()</a></code> to meet the needs + Boost 1.44: Proto gets sub-domains and per-domain control of <code class="computeroutput"><a class="link" href="../boost/proto/as_expr_id1550672.html" title="Function as_expr">proto::as_expr()</a></code> and <code class="computeroutput"><a class="link" href="../boost/proto/as_child_id1550862.html" title="Function as_child">proto::as_child()</a></code> to meet the needs of Phoenix3. </p></dd> <dt><span class="term">August 11, 2008</span></dt> @@ -637,7 +665,7 @@ alternate solutions to this tricky programming problem. </p> <p> - Thanks also to the developers of <a href="http://www.codesourcery.com/pooma/download.html" target="_top">PETE</a>. + Thanks also to the developers of <a href="http://acts.nersc.gov/formertools/pete/index.html" target="_top">PETE</a>. I found many good ideas there. </p> </div> |