|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r64850 - in sandbox/SOC/2010/phoenix3: . boost/phoenix/core boost/phoenix/scope boost/phoenix/scope/detail libs/phoenix/doc/html libs/phoenix/doc/html/phoenix libs/phoenix/doc/html/phoenix/advanced_topics libs/phoenix/doc/html/phoenix/reference libs/phoenix/doc/html/phoenix/reference/concepts libs/phoenix/doc/html/phoenix/reference/modules libs/phoenix/doc/html/phoenix/reference/modules/bind libs/phoenix/doc/html/phoenix/reference/modules/core libs/phoenix/doc/html/phoenix/reference/modules/object libs/phoenix/doc/html/phoenix/reference/modules/operator libs/phoenix/doc/html/phoenix/reference/modules/scope libs/phoenix/doc/html/phoenix/reference/modules/statement libs/phoenix/doc/html/phoenix/reference/modules/stl libs/phoenix/doc/html/phoenix/starter_kit/composites libs/phoenix/doc/html/phoenix/starter_kit/primitives libs/phoenix/doc/reference libs/phoenix/doc/reference/concepts libs/phoenix/example
From: thom.heller_at_[hidden]
Date: 2010-08-16 13:52:52
Author: theller
Date: 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
New Revision: 64850
URL: http://svn.boost.org/trac/boost/changeset/64850
Log:
final commit for gsoc submission
Added:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator/supported_operators.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/example/all_odds.cpp (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/example/lambda.cpp (contents, props changed)
Properties modified:
sandbox/SOC/2010/phoenix3/index.html (props changed)
Text files modified:
sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp | 10 +++
sandbox/SOC/2010/phoenix3/boost/phoenix/core/nothing.hpp | 4
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_variable.hpp | 1
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp | 16 ++++++
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html | 16 +++--
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced_topics/extending_actors.html | 8 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html | 10 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/actor.html | 16 +++---
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/environment.html | 14 ++--
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluationpolicy.html | 98 ++++++++++++++++++++++++++++++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluator.html | 24 ++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html | 10 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_functions.html | 8 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/arguments.html | 40 +++++++--------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/constant_references.html | 5 -
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/nothing.html | 8 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/references.html | 19 +++---
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/values.html | 10 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/construction.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/new.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html | 105 +++++----------------------------------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/lambda.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/local_variables.html | 6 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html | 14 ++--
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___if_else_____statement.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/block_statement.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/for__statement.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/switch__statement.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/while__statement.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/algorithm.html | 6 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/container.html | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html | 6 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_functions.html | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_operators.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/primitives/values.html | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest | 1
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk | 11 ++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/actor.qbk | 6 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/environment.qbk | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluation_policy.qbk | 32 ++++++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluator.qbk | 12 ++--
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk | 39 +++++++-------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk | 12 ++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk | 26 +++++----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk | 8 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk | 20 +++---
52 files changed, 363 insertions(+), 304 deletions(-)
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -35,6 +35,16 @@
return fusion::at_c<N>(env);
}
+ template <typename N, typename Env>
+ typename boost::enable_if<
+ is_environment<Env>
+ , typename result_of::get_environment_argument<Env, N>::type
+ >::type
+ get_environment_argument_c(Env& env)
+ {
+ return fusion::at_c<N::value>(env);
+ }
+
// Get the Nth argument from the environment
struct get_environment_argument
{
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/nothing.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/nothing.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/nothing.hpp 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -20,7 +20,7 @@
//
////////////////////////////////////////////////////////////////////////////
- struct null_actor
+ struct null_eval
{
typedef void result_type;
@@ -29,7 +29,7 @@
{}
};
- compose<null_actor>::result_type const nothing = {};
+ compose<null_eval>::type const nothing = {};
}}
#endif
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_variable.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_variable.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_variable.hpp 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -18,7 +18,6 @@
namespace boost { namespace phoenix
{
-
namespace detail
{
struct compute_no_nullary
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -43,6 +43,22 @@
: fusion::result_of::at_c<Env, N::value>
{};
}
+
+ // overload get_environment_argument to return the correct argument
+ template <typename N, typename Env, typename OuterEnv, typename Locals, typename Map>
+ typename result_of::get_environment_argument<scoped_environment<Env, OuterEnv, Locals, Map>, N>::type
+ get_environment_argument_c(scoped_environment<Env, OuterEnv, Locals, Map>& env)
+ {
+ return fusion::at_c<N::value>(env.env);
+ }
+
+ template <typename N, typename Env, typename OuterEnv, typename Locals, typename Map>
+ typename result_of::get_environment_argument<scoped_environment<Env, OuterEnv, Locals, Map>, N>::type
+ get_environment_argument_c(scoped_environment<Env, OuterEnv, Locals, Map> const& env)
+ {
+ return fusion::at_c<N::value>(env.env);
+ }
+
// overload get_environment_argument_c to return the correct argument
template <int N, typename Env, typename OuterEnv, typename Locals, typename Map>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -26,7 +26,7 @@
</h3></div></div>
<div><p class="copyright">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller</p></div>
<div><div class="legalnotice">
-<a name="id633133"></a><p>
+<a name="id634806"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -87,6 +87,8 @@
</dl></dd>
<dt><span class="section">Function</span></dt>
<dt><span class="section">Operator</span></dt>
+<dd><dl><dt><span class="section"><a href="phoenix/reference/modules/operator/supported_operators.html">Supported
+ operators</a></span></dt></dl></dd>
<dt><span class="section">Statement</span></dt>
<dd><dl>
<dt><span class="section"><a href="phoenix/reference/modules/statement/block_statement.html">Block
@@ -143,7 +145,7 @@
</dl>
</div>
<a name="phoenix.preface"></a><h2>
-<a name="id663863"></a>
+<a name="id665535"></a>
<a class="link" href="index.html#phoenix.preface">Preface</a>
</h2>
<div class="blockquote"><blockquote class="blockquote"><p>
@@ -162,7 +164,7 @@
<span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
</p>
<a name="phoenix.description"></a><h3>
-<a name="id631915"></a>
+<a name="id633587"></a>
<a class="link" href="index.html#phoenix.description">Description</a>
</h3>
<p>
@@ -180,7 +182,7 @@
library is organized in highly independent modules and layers.
</p>
<a name="phoenix.how_to_use_this_manual"></a><h3>
-<a name="id631962"></a>
+<a name="id633634"></a>
<a class="link" href="index.html#phoenix.how_to_use_this_manual">How to use this manual</a>
</h3>
<p>
@@ -202,7 +204,7 @@
icons precede some text to indicate:
</p>
<div class="table">
-<a name="id631996"></a><p class="title"><b>Table 1.1. Icons</b></p>
+<a name="id633669"></a><p class="title"><b>Table 1.1. Icons</b></p>
<div class="table-contents"><table class="table" summary="Icons">
<colgroup>
<col>
@@ -291,12 +293,12 @@
</p>
</div>
<a name="phoenix._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
-<a name="id672818"></a>
+<a name="id674490"></a>
<a class="link" href="index.html#phoenix._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"><span class="bold"><strong><span class="emphasis"><em>...To my dear daughter, Phoenix</em></span></strong></span></a>
</h3>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: August 16, 2010 at 15:22:16 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 16, 2010 at 17:33:55 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced_topics/extending_actors.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced_topics/extending_actors.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced_topics/extending_actors.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -39,7 +39,7 @@
on how to implement a custom actor which is usable as if it were a STL Container.
</p>
<a name="phoenix.advanced_topics.extending_actors.requirements"></a><h5>
-<a name="id677375"></a>
+<a name="id679047"></a>
<a class="link" href="extending_actors.html#phoenix.advanced_topics.extending_actors.requirements">Requirements</a>
</h5>
<p>
@@ -141,7 +141,7 @@
Additionally, we want all the operator() overloads of the regular actor.
</p>
<a name="phoenix.advanced_topics.extending_actors.defining_the_actor"></a><h5>
-<a name="id677664"></a>
+<a name="id679337"></a>
<a class="link" href="extending_actors.html#phoenix.advanced_topics.extending_actors.defining_the_actor">Defining
the actor</a>
</h5>
@@ -174,7 +174,7 @@
<span class="special">};</span>
</pre>
<a name="phoenix.advanced_topics.extending_actors.using_the_actor"></a><h5>
-<a name="id678366"></a>
+<a name="id680039"></a>
<a class="link" href="extending_actors.html#phoenix.advanced_topics.extending_actors.using_the_actor">Using
the actor</a>
</h5>
@@ -235,7 +235,7 @@
Wow, that was easy!
</p>
<a name="phoenix.advanced_topics.extending_actors.adding_life_to_the_actor"></a><h5>
-<a name="id679128"></a>
+<a name="id680800"></a>
<a class="link" href="extending_actors.html#phoenix.advanced_topics.extending_actors.adding_life_to_the_actor">Adding
life to the actor</a>
</h5>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -42,6 +42,8 @@
</dl></dd>
<dt><span class="section">Function</span></dt>
<dt><span class="section">Operator</span></dt>
+<dd><dl><dt><span class="section"><a href="reference/modules/operator/supported_operators.html">Supported
+ operators</a></span></dt></dl></dd>
<dt><span class="section">Statement</span></dt>
<dd><dl>
<dt><span class="section"><a href="reference/modules/statement/block_statement.html">Block
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -42,7 +42,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.basics.partial_function_application"></a><h5>
-<a name="id680131"></a>
+<a name="id681803"></a>
<a class="link" href="basics.html#phoenix.reference.basics.partial_function_application">Partial
Function Application</a>
</h5>
@@ -98,7 +98,7 @@
be black boxes anymore.
</p>
<a name="phoenix.reference.basics.stl_and_higher_order_functions"></a><h5>
-<a name="id680347"></a>
+<a name="id682019"></a>
<a class="link" href="basics.html#phoenix.reference.basics.stl_and_higher_order_functions">STL
and higher order functions</a>
</h5>
@@ -129,7 +129,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.basics.lazy_evaluation"></a><h5>
-<a name="id680559"></a>
+<a name="id682231"></a>
<a class="link" href="basics.html#phoenix.reference.basics.lazy_evaluation">Lazy Evaluation</a>
</h5>
<p>
@@ -184,7 +184,7 @@
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)(</span><span class="identifier">y</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// prints 0 or false
</span></pre>
<a name="phoenix.reference.basics.forwarding_function_problem"></a><h5>
-<a name="id681102"></a>
+<a name="id682774"></a>
<a class="link" href="basics.html#phoenix.reference.basics.forwarding_function_problem">Forwarding
Function Problem</a>
</h5>
@@ -225,7 +225,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.basics.polymorphic_functions"></a><h5>
-<a name="id681240"></a>
+<a name="id682912"></a>
<a class="link" href="basics.html#phoenix.reference.basics.polymorphic_functions">Polymorphic
Functions</a>
</h5>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/actor.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/actor.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/actor.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -20,7 +20,7 @@
<a name="phoenix.reference.concepts.actor"></a><a class="link" href="actor.html" title="Actor">Actor</a>
</h4></div></div></div>
<a name="phoenix.reference.concepts.actor.description"></a><h6>
-<a name="id682655"></a>
+<a name="id684328"></a>
<a class="link" href="actor.html#phoenix.reference.concepts.actor.description">Description</a>
</h6>
<p>
@@ -74,7 +74,7 @@
</dl>
</div>
<a name="phoenix.reference.concepts.actor.valid_expressions"></a><h6>
-<a name="id682899"></a>
+<a name="id684572"></a>
<a class="link" href="actor.html#phoenix.reference.concepts.actor.valid_expressions">Valid
Expressions</a>
</h6>
@@ -156,7 +156,7 @@
</tbody>
</table></div>
<a name="phoenix.reference.concepts.actor.result_type_expressions"></a><h6>
-<a name="id683032"></a>
+<a name="id684705"></a>
<a class="link" href="actor.html#phoenix.reference.concepts.actor.result_type_expressions">Result
Type Expressions</a>
</h6>
@@ -238,7 +238,7 @@
</tbody>
</table></div>
<a name="phoenix.reference.concepts.actor.expression_semantics"></a><h6>
-<a name="id683165"></a>
+<a name="id684838"></a>
<a class="link" href="actor.html#phoenix.reference.concepts.actor.expression_semantics">Expression
Semantics</a>
</h6>
@@ -301,18 +301,18 @@
</tbody>
</table></div>
<a name="phoenix.reference.concepts.actor.models"></a><h6>
-<a name="id683307"></a>
+<a name="id684980"></a>
<a class="link" href="actor.html#phoenix.reference.concepts.actor.models">Models</a>
</h6>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
- <a class="link" href="../../../"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">actor</span></code></a>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">actor</span></code>
</li>
<li class="listitem">
- <a class="link" href="../modules/statement/if__statement.html" title="if_ Statement"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">if_</span></code></a>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">if_</span></code>
</li>
<li class="listitem">
- <a class="link" href="../modules/statement/try__catch__statement.html" title="try_ catch_ Statement"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">try_</span></code></a>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">try_</span></code>
</li>
</ul></div>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/environment.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/environment.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/environment.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -20,7 +20,7 @@
<a name="phoenix.reference.concepts.environment"></a><a class="link" href="environment.html" title="Environment">Environment</a>
</h4></div></div></div>
<a name="phoenix.reference.concepts.environment.description"></a><h6>
-<a name="id684626"></a>
+<a name="id687255"></a>
<a class="link" href="environment.html#phoenix.reference.concepts.environment.description">Description</a>
</h6>
<p>
@@ -51,7 +51,7 @@
</dl>
</div>
<a name="phoenix.reference.concepts.environment.valid_expressions"></a><h6>
-<a name="id684747"></a>
+<a name="id687377"></a>
<a class="link" href="environment.html#phoenix.reference.concepts.environment.valid_expressions">Valid
Expressions</a>
</h6>
@@ -116,7 +116,7 @@
</tbody>
</table></div>
<a name="phoenix.reference.concepts.environment.result_type_expressions"></a><h6>
-<a name="id684920"></a>
+<a name="id687551"></a>
<a class="link" href="environment.html#phoenix.reference.concepts.environment.result_type_expressions">Result
Type Expressions</a>
</h6>
@@ -182,7 +182,7 @@
</tbody>
</table></div>
<a name="phoenix.reference.concepts.environment.expression_semantics"></a><h6>
-<a name="id685124"></a>
+<a name="id687755"></a>
<a class="link" href="environment.html#phoenix.reference.concepts.environment.expression_semantics">Expression
Semantics</a>
</h6>
@@ -233,15 +233,15 @@
</tbody>
</table></div>
<a name="phoenix.reference.concepts.environment.models"></a><h6>
-<a name="id685308"></a>
+<a name="id687939"></a>
<a class="link" href="environment.html#phoenix.reference.concepts.environment.models">Models</a>
</h6>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
- <a class="link" href="../../../"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">basic_environment</span></code></a>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">basic_environment</span></code>
</li>
<li class="listitem">
- <a class="link" href="../../../"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">scoped_environment</span></code></a>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">scoped_environment</span></code>
</li>
</ul></div>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluationpolicy.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluationpolicy.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluationpolicy.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -20,12 +20,13 @@
<a name="phoenix.reference.concepts.evaluationpolicy"></a><a class="link" href="evaluationpolicy.html" title="EvaluationPolicy">EvaluationPolicy</a>
</h4></div></div></div>
<a name="phoenix.reference.concepts.evaluationpolicy.description"></a><h6>
-<a name="id684012"></a>
+<a name="id685794"></a>
<a class="link" href="evaluationpolicy.html#phoenix.reference.concepts.evaluationpolicy.description">Description</a>
</h6>
<p>
Evaluation Policies are the classes which decide how the composite is to
- be evaluated with respect to the default evaluator.
+ be evaluated with respect to the default evaluator. They are completly
+ independent of the <a class="link" href="actor.html" title="Actor">Actor</a>.
</p>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
@@ -40,7 +41,8 @@
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">Env</span></code></span></dt>
<dd><p>
- A type of <a class="link" href="environment.html" title="Environment">Environment</a>
+ Type fulfilling the <a class="link" href="environment.html" title="Environment">Environment
+ concept</a>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">env</span></code></span></dt>
<dd><p>
@@ -48,7 +50,8 @@
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">A0</span><span class="special">...</span><span class="identifier">AN</span></code></span></dt>
<dd><p>
- Argument Types
+ Types fulfilling the <a class="link" href="actor.html" title="Actor">Actor
+ Concept</a>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">a0</span><span class="special">...</span><span class="identifier">aN</span></code></span></dt>
<dd><p>
@@ -57,7 +60,7 @@
</dl>
</div>
<a name="phoenix.reference.concepts.evaluationpolicy.valid_expressions"></a><h6>
-<a name="id684194"></a>
+<a name="id685990"></a>
<a class="link" href="evaluationpolicy.html#phoenix.reference.concepts.evaluationpolicy.valid_expressions">Valid
Expressions</a>
</h6>
@@ -104,7 +107,7 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.concepts.evaluationpolicy.result_type_expressions"></a><h6>
-<a name="id684321"></a>
+<a name="id686117"></a>
<a class="link" href="evaluationpolicy.html#phoenix.reference.concepts.evaluationpolicy.result_type_expressions">Result
Type Expressions</a>
</h6>
@@ -140,7 +143,7 @@
</td>
<td>
<p>
- Result of evaluation
+ Result of the evaluation
</p>
</td>
<td>
@@ -151,7 +154,7 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.concepts.evaluationpolicy.expression_semantics"></a><h6>
-<a name="id684475"></a>
+<a name="id686271"></a>
<a class="link" href="evaluationpolicy.html#phoenix.reference.concepts.evaluationpolicy.expression_semantics">Expression
Semantics</a>
</h6>
@@ -187,12 +190,83 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.concepts.evaluationpolicy.models"></a><h6>
-<a name="id684588"></a>
+<a name="id686384"></a>
<a class="link" href="evaluationpolicy.html#phoenix.reference.concepts.evaluationpolicy.models">Models</a>
</h6>
-<p>
- TODO (almost everything)
- </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">value</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">reference</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">argument</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">null_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">if_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">if_else_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">switch_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">while_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">do_while_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">for_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">try_catch_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">try_catch_all_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">throw_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">construct_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">new_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">delete_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">static_cast_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">dynamic_cast_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">reinterpret_cast_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">const_cast_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">local_variable</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">let_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">lambda_eval</span></code>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">lambda_actor_eval</span></code>
+ </li>
+</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluator.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluator.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts/evaluator.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -20,7 +20,7 @@
<a name="phoenix.reference.concepts.evaluator"></a><a class="link" href="evaluator.html" title="Evaluator">Evaluator</a>
</h4></div></div></div>
<a name="phoenix.reference.concepts.evaluator.description"></a><h6>
-<a name="id683467"></a>
+<a name="id685122"></a>
<a class="link" href="evaluator.html#phoenix.reference.concepts.evaluator.description">Description</a>
</h6>
<p>
@@ -45,7 +45,8 @@
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">Expr</span></code></span></dt>
<dd><p>
- Type of the Actor Concept
+ Type of the <a class="link" href="actor.html" title="Actor">Actor
+ Concept</a>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">expr</span></code></span></dt>
<dd><p>
@@ -53,7 +54,8 @@
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">Env</span></code></span></dt>
<dd><p>
- Type fulfilling the Environment concept
+ Type fulfilling the <a class="link" href="environment.html" title="Environment">Environment
+ concept</a>
</p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">env</span></code></span></dt>
<dd><p>
@@ -62,7 +64,7 @@
</dl>
</div>
<a name="phoenix.reference.concepts.evaluator.valid_expressions"></a><h6>
-<a name="id683637"></a>
+<a name="id685306"></a>
<a class="link" href="evaluator.html#phoenix.reference.concepts.evaluator.valid_expressions">Valid
Expressions</a>
</h6>
@@ -109,7 +111,7 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.concepts.evaluator.result_type_expressions"></a><h6>
-<a name="id683755"></a>
+<a name="id685424"></a>
<a class="link" href="evaluator.html#phoenix.reference.concepts.evaluator.result_type_expressions">Result
Type Expressions</a>
</h6>
@@ -155,7 +157,7 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.concepts.evaluator.expression_semantics"></a><h6>
-<a name="id683841"></a>
+<a name="id685510"></a>
<a class="link" href="evaluator.html#phoenix.reference.concepts.evaluator.expression_semantics">Expression
Semantics</a>
</h6>
@@ -191,21 +193,21 @@
</tr></tbody>
</table></div>
<a name="phoenix.reference.concepts.evaluator.models"></a><h6>
-<a name="id683946"></a>
+<a name="id685615"></a>
<a class="link" href="evaluator.html#phoenix.reference.concepts.evaluator.models">Models</a>
</h6>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
- eval_grammar
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">eval_grammar</span></code>
</li>
<li class="listitem">
- arity
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arity</span></code>
</li>
<li class="listitem">
- no_nullary
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">no_nullary</span></code>
</li>
<li class="listitem">
- switch_grammar
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">switch_grammar</span></code>
</li>
</ul></div>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -31,6 +31,8 @@
</dl></dd>
<dt><span class="section">Function</span></dt>
<dt><span class="section">Operator</span></dt>
+<dd><dl><dt><span class="section"><a href="modules/operator/supported_operators.html">Supported
+ operators</a></span></dt></dl></dd>
<dt><span class="section">Statement</span></dt>
<dd><dl>
<dt><span class="section"><a href="modules/statement/block_statement.html">Block
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -31,7 +31,7 @@
</dl></div>
<p>
<span class="emphasis"><em>Binding</em></span> is the act of tying together a function to
- some arguments for deferred (lazy) evaluation. Named <a class="link" href="function.html" title="Function">Lazy
+ some arguments for deferred (lazy) evaluation. Named <a class="link" href="function.html" title="Function">lazy
functions</a> require a bit of typing. Unlike (unnamed) lambda expressions,
we need to write a functor somewhere offline, detached from the call site.
If you wish to transform a plain function, member function or member variable
@@ -45,15 +45,15 @@
</tr>
<tr><td align="left" valign="top"><p>
Take note that binders are monomorphic. Rather than binding functions,
- the preferred way is to write true generic and polymorphic <a class="link" href="function.html" title="Function">lazy-functions</a>.
- However, since most of the time we are dealing with adaptation of existing
- code, binders get the job done faster.
+ the preferred way is to write true generic and polymorphic <a class="link" href="function.html" title="Function">lazy
+ functions</a>. However, since most of the time we are dealing with
+ adaptation of existing code, binders get the job done faster.
</p></td></tr>
</table></div>
<p>
There is a set of overloaded <code class="computeroutput"><span class="identifier">bind</span></code>
template functions. Each <code class="computeroutput"><span class="identifier">bind</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
- function generates a suitable binder object, a <a class="link" href="../../../">composite</a>.
+ function generates a suitable binder object.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_functions.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_functions.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_functions.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -37,10 +37,10 @@
<pre class="programlisting"><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)</span>
</pre>
<p>
- This is now a full-fledged <a class="link" href="../../../../">composite</a>
- that can finally be evaluated by another function call invocation. A
- second function call will invoke the actual <code class="computeroutput"><span class="identifier">foo</span></code>
- function. Example:
+ This is now a full-fledged composite that can finally be evaluated by
+ another function call invocation. A second function call will invoke
+ the actual <code class="computeroutput"><span class="identifier">foo</span></code> function.
+ Example:
</p>
<pre class="programlisting"><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)(</span><span class="number">4</span><span class="special">);</span>
</pre>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/arguments.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/arguments.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/arguments.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -24,20 +24,19 @@
<p>
We use an instance of:
</p>
-<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">argument</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span>
+<pre class="programlisting"><span class="identifier">make_argument</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span>
</pre>
<p>
to represent the Nth function argument. The argument placeholder acts
as an imaginary data-bin where a function argument will be placed.
</p>
-<a name="phoenix.reference.modules.core.arguments.predefined_arguments"></a><h3>
-<a name="id686841"></a>
+<a name="phoenix.reference.modules.core.arguments.predefined_arguments"></a><h6>
+<a name="id689412"></a>
<a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.predefined_arguments">Predefined
Arguments</a>
- </h3>
+ </h6>
<p>
- There are a few predefined instances of <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">argument</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span></code>
- named <code class="computeroutput"><span class="identifier">arg1</span></code>..<code class="computeroutput"><span class="identifier">argN</span></code>, and its BLL
+ There are a few predefined instances of <code class="computeroutput"><span class="identifier">make_argument</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span></code> named <code class="computeroutput"><span class="identifier">arg1</span></code>..<code class="computeroutput"><span class="identifier">argN</span></code>, and its BLL
counterpart <code class="computeroutput"><span class="identifier">_1</span></code>..<code class="computeroutput"><span class="identifier">_N</span></code>. (where N is a predefined maximum).
</p>
<p>
@@ -63,26 +62,25 @@
</tr>
<tr><td align="left" valign="top"><p>
You can set <code class="computeroutput"><span class="identifier">PHOENIX_ARG_LIMIT</span></code>,
- the predefined maximum placeholder index. By default, <code class="computeroutput"><span class="identifier">PHOENIX_ARG_LIMIT</span></code> is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> (See <a class="link" href="../../../../">Actor</a>).
+ the predefined maximum placeholder index. By default, <code class="computeroutput"><span class="identifier">PHOENIX_ARG_LIMIT</span></code> is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> (See <a class="link" href="../../concepts/actor.html" title="Actor">Actor</a>).
</p></td></tr>
</table></div>
<p>
- You see the use make_argument this is a convenience class wrapping the
- <code class="computeroutput"><span class="identifier">compose</span></code> class:
+ You see the use of make_argument this is a convenience class wrapping
+ the <code class="computeroutput"><span class="identifier">compose</span></code> class:
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">N</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">make_argument</span> <span class="special">:</span> <span class="identifier">compose</span><span class="special"><</span><span class="identifier">argument</span><span class="special">,</span> <span class="identifier">N</span><span class="special">></span> <span class="special">{};</span>
</pre>
<p>
This scheme of actor creation is used throughout the library and follows
- the DRY principle. See <a class="link" href="../../../../">Composites</a>
- for more details.
+ the DRY principle.
</p>
-<a name="phoenix.reference.modules.core.arguments.user_defined_arguments"></a><h3>
-<a name="id687616"></a>
+<a name="phoenix.reference.modules.core.arguments.user_defined_arguments"></a><h6>
+<a name="id690175"></a>
<a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.user_defined_arguments">User
Defined Arguments</a>
- </h3>
+ </h6>
<p>
When appropriate, you can define your own <code class="computeroutput"><span class="identifier">argument</span></code>
names. For example:
@@ -113,16 +111,16 @@
</p>
<p>
This is possible by supplying a custom <code class="computeroutput"><span class="identifier">actor</span></code>
- which has a member generator function. See <a class="link" href="../../../../">Extending
+ which has a member generator function. See <a class="link" href="../../../advanced_topics/extending_actors.html" title="Extending Actors">Extending
Actors</a> for more details.
</p>
</td></tr>
</table></div>
-<a name="phoenix.reference.modules.core.arguments.evaluating_an_argument"></a><h3>
-<a name="id687843"></a>
+<a name="phoenix.reference.modules.core.arguments.evaluating_an_argument"></a><h6>
+<a name="id690400"></a>
<a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.evaluating_an_argument">Evaluating
an Argument</a>
- </h3>
+ </h6>
<p>
An argument, when evaluated, selects the Nth argument from the those
passed in by the client.
@@ -145,11 +143,11 @@
<span class="number">123</span>
<span class="identifier">Hello</span> <span class="identifier">World</span>
</pre>
-<a name="phoenix.reference.modules.core.arguments.extra_arguments"></a><h3>
-<a name="id688172"></a>
+<a name="phoenix.reference.modules.core.arguments.extra_arguments"></a><h6>
+<a name="id690729"></a>
<a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.extra_arguments">Extra
Arguments</a>
- </h3>
+ </h6>
<p>
In C and C++, a function can have extra arguments that are not at all
used by the function body itself. These extra arguments are simply ignored.
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/constant_references.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/constant_references.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/constant_references.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -23,9 +23,8 @@
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Another free function <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code> may also be used. <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code> creates an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&></span></code>
- object. This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> but when the data to be passed as
- argument to a function is heavy and expensive to copy by value, the
+ Another free function <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code> may also be used. <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code> creates an <code class="computeroutput"><span class="identifier">make_reference</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">>::</span><span class="identifier">type</span></code> object. This is similar to <code class="computeroutput"><span class="identifier">make_value</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span></code> but when the data to be passed
+ as argument to a function is heavy and expensive to copy by value, the
<code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code>
offers a lighter alternative.
</p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/nothing.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/nothing.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/nothing.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -22,10 +22,10 @@
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">nothing</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Finally, the <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">null_actor</span><span class="special">></span></code>
- does nothing; (a "bum", if you will :-). There's a sole <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">null_actor</span><span class="special">></span></code>
- instance named "nothing". This actor is actually useful in
- situations where we don't want to do anything. (See <a class="link" href="../statement/for__statement.html" title="for_ Statement">for_
+ Finally, the <code class="computeroutput"><span class="identifier">compose</span><span class="special"><</span><span class="identifier">null_eval</span><span class="special">>::</span><span class="identifier">type</span></code>
+ does nothing; (a "bum", if you will :-). There's a sole <code class="computeroutput"><span class="identifier">compose</span><span class="special"><</span><span class="identifier">null_eval</span><span class="special">>::</span><span class="identifier">type</span></code> instance named "nothing".
+ This actor is actually useful in situations where we don't want to do
+ anything. (See <a class="link" href="../statement/for__statement.html" title="for_ Statement">for_
Statement</a> for example).
</p>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/references.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/references.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/references.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -41,24 +41,25 @@
<a class="link" href="values.html" title="Values">Values</a>).
To achieve our intent, we use:
</p>
-<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&></span>
+<pre class="programlisting"><span class="identifier">make_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
</pre>
<p>
- This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> above but instead holds a reference
- to a variable.
+ This is similar to <code class="computeroutput"><span class="identifier">make_value</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span></code>
+ befor but instead holds a reference to a variable.
</p>
<p>
- We normally don't instantiate <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> objects directly. Instead we use
- <code class="computeroutput"><span class="identifier">ref</span></code>. For example (where
- <code class="computeroutput"><span class="identifier">i</span></code> is an <code class="computeroutput"><span class="keyword">int</span></code> variable):
+ We normally don't instantiate <code class="computeroutput"><span class="identifier">make_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span></code>
+ objects directly. Instead we use <code class="computeroutput"><span class="identifier">ref</span></code>.
+ For example (where <code class="computeroutput"><span class="identifier">i</span></code>
+ is an <code class="computeroutput"><span class="keyword">int</span></code> variable):
</p>
<pre class="programlisting"><span class="identifier">add_assign</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">),</span> <span class="number">2</span><span class="special">)</span>
</pre>
-<a name="phoenix.reference.modules.core.references.evaluating_a_reference"></a><h3>
-<a name="id686311"></a>
+<a name="phoenix.reference.modules.core.references.evaluating_a_reference"></a><h6>
+<a name="id688898"></a>
<a class="link" href="references.html#phoenix.reference.modules.core.references.evaluating_a_reference">Evaluating
a Reference</a>
- </h3>
+ </h6>
<p>
References are actors. Hence, references can be evaluated. Such invocation
gives the references's identity. Example:
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/values.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/values.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/values.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -24,7 +24,7 @@
<p>
Whenever we see a constant in a partially applied function, an
</p>
-<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span>
+<pre class="programlisting"><span class="identifier">make_value</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
</pre>
<p>
(where T is the type of the constant) is automatically created for us.
@@ -34,21 +34,21 @@
</pre>
<p>
Passing a second argument, <code class="computeroutput"><span class="number">6</span></code>,
- an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></span></code>
- is implicitly created behind the scenes. This is also equivalent to:
+ an <code class="computeroutput"><span class="identifier">make_value</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">type</span></code> is implicitly created behind the
+ scenes. This is also equivalent to:
</p>
<pre class="programlisting"><span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">val</span><span class="special">(</span><span class="number">6</span><span class="special">))</span>
</pre>
<p>
<code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
- generates an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code>
+ generates an <code class="computeroutput"><span class="identifier">make_value</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span></code>
where <code class="computeroutput"><span class="identifier">T</span></code> is the type of
<code class="computeroutput"><span class="identifier">x</span></code>. In most cases, there's
no need to explicitly use <code class="computeroutput"><span class="identifier">val</span></code>,
but, as we'll see later on, there are situations where this is unavoidable.
</p>
<a name="phoenix.reference.modules.core.values.evaluating_a_value"></a><h3>
-<a name="id685793"></a>
+<a name="id688396"></a>
<a class="link" href="values.html#phoenix.reference.modules.core.values.evaluating_a_value">Evaluating
a Value</a>
</h3>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -93,7 +93,7 @@
<p>
Invoking a lazy function such as <code class="computeroutput"><span class="identifier">factorial</span></code>
does not immediately execute the function object <code class="computeroutput"><span class="identifier">factorial_impl</span></code>.
- Instead, an <a class="link" href="../../../"><code class="computeroutput"><span class="identifier">actor</span></code></a>
+ Instead, an <a class="link" href="../concepts/actor.html" title="Actor">actor</a>
object is created and returned to the caller. Example:
</p>
<pre class="programlisting"><span class="identifier">factorial</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/construction.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/construction.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/construction.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -53,7 +53,7 @@
constant PHOENIX_COMPOSITE_LIMIT. Note though, that this limit should
not be greater than PHOENIX_LIMIT. By default, <code class="computeroutput"><span class="identifier">PHOENIX_COMPOSITE_LIMIT</span></code>
is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code>
- (See <a class="link" href="../../../../">Actor</a>).
+ (See <a class="link" href="../../concepts/actor.html" title="Actor">Actor</a>).
</p></td></tr>
</table></div>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/new.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/new.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/new.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -53,7 +53,7 @@
constant PHOENIX_COMPOSITE_LIMIT. Note though, that this limit should
not be greater than PHOENIX_LIMIT. By default, <code class="computeroutput"><span class="identifier">PHOENIX_COMPOSITE_LIMIT</span></code>
is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code>
- (See <a class="link" href="../../../../">Actor</a>).
+ (See <a class="link" href="../../concepts/actor.html" title="Actor">Actor</a>).
</p></td></tr>
</table></div>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -7,18 +7,20 @@
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
<link rel="prev" href="function.html" title="Function">
-<link rel="next" href="statement.html" title="Statement">
+<link rel="next" href="operator/supported_operators.html" title="Supported operators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="operator/supported_operators.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="phoenix.reference.modules.operator"></a><a class="link" href="operator.html" title="Operator">Operator</a>
</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="operator/supported_operators.html">Supported
+ operators</a></span></dt></dl></div>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="keyword">operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
@@ -33,10 +35,11 @@
<span class="identifier">arg1</span> <span class="special"><</span> <span class="number">150</span>
</pre>
<p>
- We have seen the lazy operators in action (see <a class="link" href="../../../">Quick
- Start</a>). Let's go back and examine them a little bit further:
+ We have seen the lazy operators in action (see <a class="link" href="../../starter_kit/composites/lazy_operators.html" title="Lazy Operators">Quick
+ Start - Lazy Operators</a>). Let's go back and examine them a little
+ bit further:
</p>
-<pre class="programlisting"><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)</span>
</pre>
<p>
Through operator overloading, the expression <code class="computeroutput"><span class="identifier">arg1</span>
@@ -51,9 +54,10 @@
arg1 is replaced by the container's element.
</p>
<p>
- Like lazy functions (see <a class="link" href="function.html" title="Function"><code class="computeroutput"><span class="identifier">function</span></code></a>), lazy operators are
- not immediately executed when invoked. Instead, an actor (see <a class="link" href="../../../">actor</a>)
- object is created and returned to the caller. Example:
+ Like lazy functions (see <a class="link" href="function.html" title="Function">Function</a>),
+ lazy operators are not immediately executed when invoked. Instead, an actor
+ (see <a class="link" href="../concepts/actor.html" title="Actor">Actor</a>) object
+ is created and returned to the caller. Example:
</p>
<pre class="programlisting"><span class="special">(</span><span class="identifier">arg1</span> <span class="special">+</span> <span class="identifier">arg2</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">arg3</span>
</pre>
@@ -73,7 +77,7 @@
<li class="listitem">
A binary operator, except <code class="computeroutput"><span class="special">->*</span></code>
will be lazily evaluated when <span class="emphasis"><em>at least</em></span> one of
- its operands is an actor object (see <a class="link" href="../../../">actors</a>).
+ its operands is an actor object (see <a class="link" href="../concepts/actor.html" title="Actor">Actor</a>).
</li>
<li class="listitem">
Unary operators are lazily evaluated if their argument is an actor
@@ -134,91 +138,12 @@
expression, we can use <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>,
<code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> or
<code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> to
- transform an operand into a valid actor object (see <a class="link" href="core.html" title="Core">Core</a>.
+ transform an operand into a valid actor object (see <a class="link" href="core.html" title="Core">Core</a>).
For example:
</p>
<pre class="programlisting"><span class="number">1</span> <span class="special"><<</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Immediately evaluated
</span><span class="identifier">val</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Lazily evaluated
</span></pre>
-<a name="phoenix.reference.modules.operator.supported_operators"></a><h3>
-<a name="id690521"></a>
- <a class="link" href="operator.html#phoenix.reference.modules.operator.supported_operators">Supported
- operators</a>
- </h3>
-<a name="phoenix.reference.modules.operator.unary_operators"></a><h4>
-<a name="id690540"></a>
- <a class="link" href="operator.html#phoenix.reference.modules.operator.unary_operators">Unary
- operators</a>
- </h4>
-<pre class="programlisting"><span class="identifier">prefix</span><span class="special">:</span> <span class="special">~,</span> <span class="special">!,</span> <span class="special">-,</span> <span class="special">+,</span> <span class="special">++,</span> <span class="special">--,</span> <span class="special">&</span> <span class="special">(</span><span class="identifier">reference</span><span class="special">),</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">dereference</span><span class="special">)</span>
-<span class="identifier">postfix</span><span class="special">:</span> <span class="special">++,</span> <span class="special">--</span>
-</pre>
-<a name="phoenix.reference.modules.operator.binary_operators"></a><h4>
-<a name="id690670"></a>
- <a class="link" href="operator.html#phoenix.reference.modules.operator.binary_operators">Binary
- operators</a>
- </h4>
-<pre class="programlisting"><span class="special">=,</span> <span class="special">[],</span> <span class="special">+=,</span> <span class="special">-=,</span> <span class="special">*=,</span> <span class="special">/=,</span> <span class="special">%=,</span> <span class="special">&=,</span> <span class="special">|=,</span> <span class="special">^=,</span> <span class="special"><<=,</span> <span class="special">>>=</span>
-<span class="special">+,</span> <span class="special">-,</span> <span class="special">*,</span> <span class="special">/,</span> <span class="special">%,</span> <span class="special">&,</span> <span class="special">|,</span> <span class="special">^,</span> <span class="special"><<,</span> <span class="special">>></span>
-<span class="special">==,</span> <span class="special">!=,</span> <span class="special"><,</span> <span class="special">>,</span> <span class="special"><=,</span> <span class="special">>=</span>
-<span class="special">&&,</span> <span class="special">||,</span> <span class="special">->*</span>
-</pre>
-<a name="phoenix.reference.modules.operator.ternary_operator"></a><h4>
-<a name="id690873"></a>
- <a class="link" href="operator.html#phoenix.reference.modules.operator.ternary_operator">Ternary
- operator</a>
- </h4>
-<pre class="programlisting"><span class="identifier">if_else</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span>
-</pre>
-<p>
- The ternary operator deserves special mention. Since C++ does not allow
- us to overload the conditional expression: <code class="computeroutput"><span class="identifier">c</span>
- <span class="special">?</span> <span class="identifier">a</span>
- <span class="special">:</span> <span class="identifier">b</span></code>,
- the if_else pseudo function is provided for this purpose. The behavior
- is identical, albeit in a lazy manner.
- </p>
-<a name="phoenix.reference.modules.operator.member_pointer_operator"></a><h4>
-<a name="id690974"></a>
- <a class="link" href="operator.html#phoenix.reference.modules.operator.member_pointer_operator">Member
- pointer operator</a>
- </h4>
-<pre class="programlisting"><span class="identifier">a</span><span class="special">->*</span><span class="identifier">member_object_pointer</span>
-<span class="identifier">a</span><span class="special">->*</span><span class="identifier">member_function_pointer</span>
-</pre>
-<p>
- The left hand side of the member pointer operator must be an actor returning
- a pointer type. The right hand side of the member pointer operator may
- be either a pointer to member object or pointer to member function.
- </p>
-<p>
- If the right hand side is a member object pointer, the result is an actor
- which, when evaluated, returns a reference to that member. For example:
- </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span>
-<span class="special">{</span>
- <span class="keyword">int</span> <span class="identifier">member</span><span class="special">;</span>
-<span class="special">};</span>
-
-<span class="identifier">A</span><span class="special">*</span> <span class="identifier">a</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">A</span><span class="special">;</span>
-<span class="special">...</span>
-
-<span class="special">(</span><span class="identifier">arg1</span><span class="special">->*&</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">member</span><span class="special">)(</span><span class="identifier">a</span><span class="special">);</span> <span class="comment">// returns member a->member
-</span></pre>
-<p>
- If the right hand side is a member function pointer, the result is an actor
- which, when invoked, calls the specified member function. For example:
- </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span>
-<span class="special">{</span>
- <span class="keyword">int</span> <span class="identifier">func</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
-<span class="special">};</span>
-
-<span class="identifier">A</span><span class="special">*</span> <span class="identifier">a</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">A</span><span class="special">;</span>
-<span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
-
-<span class="special">(</span><span class="identifier">arg1</span><span class="special">->*&</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">func</span><span class="special">)(</span><span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">i</span><span class="special">);</span> <span class="comment">// returns a->func(i)
-</span></pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
@@ -230,7 +155,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="operator/supported_operators.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator/supported_operators.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator/supported_operators.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Supported operators</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../operator.html" title="Operator">
+<link rel="prev" href="../operator.html" title="Operator">
+<link rel="next" href="../statement.html" title="Statement">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../operator.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.operator.supported_operators"></a><a class="link" href="supported_operators.html" title="Supported operators">Supported
+ operators</a>
+</h5></div></div></div>
+<a name="phoenix.reference.modules.operator.supported_operators.unary_operators"></a><h6>
+<a name="id693096"></a>
+ <a class="link" href="supported_operators.html#phoenix.reference.modules.operator.supported_operators.unary_operators">Unary
+ operators</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">prefix</span><span class="special">:</span> <span class="special">~,</span> <span class="special">!,</span> <span class="special">-,</span> <span class="special">+,</span> <span class="special">++,</span> <span class="special">--,</span> <span class="special">&</span> <span class="special">(</span><span class="identifier">reference</span><span class="special">),</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">dereference</span><span class="special">)</span>
+<span class="identifier">postfix</span><span class="special">:</span> <span class="special">++,</span> <span class="special">--</span>
+</pre>
+<a name="phoenix.reference.modules.operator.supported_operators.binary_operators"></a><h6>
+<a name="id693227"></a>
+ <a class="link" href="supported_operators.html#phoenix.reference.modules.operator.supported_operators.binary_operators">Binary
+ operators</a>
+ </h6>
+<pre class="programlisting"><span class="special">=,</span> <span class="special">[],</span> <span class="special">+=,</span> <span class="special">-=,</span> <span class="special">*=,</span> <span class="special">/=,</span> <span class="special">%=,</span> <span class="special">&=,</span> <span class="special">|=,</span> <span class="special">^=,</span> <span class="special"><<=,</span> <span class="special">>>=</span>
+<span class="special">+,</span> <span class="special">-,</span> <span class="special">*,</span> <span class="special">/,</span> <span class="special">%,</span> <span class="special">&,</span> <span class="special">|,</span> <span class="special">^,</span> <span class="special"><<,</span> <span class="special">>></span>
+<span class="special">==,</span> <span class="special">!=,</span> <span class="special"><,</span> <span class="special">>,</span> <span class="special"><=,</span> <span class="special">>=</span>
+<span class="special">&&,</span> <span class="special">||,</span> <span class="special">->*</span>
+</pre>
+<a name="phoenix.reference.modules.operator.supported_operators.ternary_operator"></a><h6>
+<a name="id693429"></a>
+ <a class="link" href="supported_operators.html#phoenix.reference.modules.operator.supported_operators.ternary_operator">Ternary
+ operator</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">if_else</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span>
+</pre>
+<p>
+ The ternary operator deserves special mention. Since C++ does not allow
+ us to overload the conditional expression: <code class="computeroutput"><span class="identifier">c</span>
+ <span class="special">?</span> <span class="identifier">a</span>
+ <span class="special">:</span> <span class="identifier">b</span></code>,
+ the if_else pseudo function is provided for this purpose. The behavior
+ is identical, albeit in a lazy manner.
+ </p>
+<a name="phoenix.reference.modules.operator.supported_operators.member_pointer_operator"></a><h6>
+<a name="id693532"></a>
+ <a class="link" href="supported_operators.html#phoenix.reference.modules.operator.supported_operators.member_pointer_operator">Member
+ pointer operator</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">->*</span><span class="identifier">member_object_pointer</span>
+<span class="identifier">a</span><span class="special">->*</span><span class="identifier">member_function_pointer</span>
+</pre>
+<p>
+ The left hand side of the member pointer operator must be an actor returning
+ a pointer type. The right hand side of the member pointer operator may
+ be either a pointer to member object or pointer to member function.
+ </p>
+<p>
+ If the right hand side is a member object pointer, the result is an actor
+ which, when evaluated, returns a reference to that member. For example:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">member</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="identifier">A</span><span class="special">*</span> <span class="identifier">a</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">A</span><span class="special">;</span>
+<span class="special">...</span>
+
+<span class="special">(</span><span class="identifier">arg1</span><span class="special">->*&</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">member</span><span class="special">)(</span><span class="identifier">a</span><span class="special">);</span> <span class="comment">// returns member a->member
+</span></pre>
+<p>
+ If the right hand side is a member function pointer, the result is an
+ actor which, when invoked, calls the specified member function. For example:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">func</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="identifier">A</span><span class="special">*</span> <span class="identifier">a</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">A</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+
+<span class="special">(</span><span class="identifier">arg1</span><span class="special">->*&</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">func</span><span class="special">)(</span><span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">i</span><span class="special">);</span> <span class="comment">// returns a->func(i)
+</span></pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../operator.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../images/home.png" alt="Home"></a><a accesskey="n" href="../statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/lambda.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/lambda.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/lambda.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -169,7 +169,7 @@
Hence: _a = arg2. This local variable is visible inside the lambda scope.
</p>
<p>
- (See lambda.cpp)
+ (See lambda.cpp)
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/local_variables.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/local_variables.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/local_variables.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -25,7 +25,7 @@
<p>
We use an instance of:
</p>
-<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">local_variable</span><span class="special"><</span><span class="identifier">Key</span><span class="special">></span> <span class="special">></span>
+<pre class="programlisting"><span class="identifier">make_local_variable</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span>
</pre>
<p>
to represent a local variable. The local variable acts as an imaginary
@@ -33,13 +33,13 @@
to identify the local variable. Example:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">size_key</span><span class="special">;</span>
-<span class="identifier">actor</span><span class="special"><</span><span class="identifier">local_variable</span><span class="special"><</span><span class="identifier">size_key</span><span class="special">></span> <span class="special">></span> <span class="identifier">size</span><span class="special">;</span>
+<span class="identifier">make_local_variable</span><span class="special"><</span><span class="identifier">size_key</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">size</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><strong>Predefined Local Variables</strong></span>
</p>
<p>
- There are a few predefined instances of <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">local_variable</span><span class="special"><</span><span class="identifier">Key</span><span class="special">></span> <span class="special">></span></code>
+ There are a few predefined instances of <code class="computeroutput"><span class="identifier">make_local_variable</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span></code>
named <code class="computeroutput"><span class="identifier">_a</span></code>..<code class="computeroutput"><span class="identifier">_z</span></code> that you can already use. To make
use of them, simply use the <code class="computeroutput"><span class="keyword">namespace</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">local_names</span></code>:
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
-<link rel="prev" href="operator.html" title="Operator">
+<link rel="prev" href="operator/supported_operators.html" title="Supported operators">
<link rel="next" href="statement/block_statement.html" title="Block Statement">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="operator.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement/block_statement.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="operator/supported_operators.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement/block_statement.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
@@ -41,13 +41,13 @@
</p>
<p>
The primitives and composite building blocks presented so far are sufficiently
- powerful to construct quite elaborate structures. We have presented lazy-
- functions and lazy-operators. How about lazy-statements? First, an appetizer:
+ powerful to construct quite elaborate structures. We have presented lazy-functions
+ and lazy-operators. How about lazy-statements? First, an appetizer:
</p>
<p>
- Print all odd-numbered contents of an STL container using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span></code> (all_odds.cpp):
+ Print all odd-numbered contents of an STL container using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span></code> (all_odds.cpp):
</p>
-<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="identifier">if_</span><span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)</span>
<span class="special">[</span>
<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="char">' '</span>
@@ -103,7 +103,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="operator.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement/block_statement.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="operator/supported_operators.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement/block_statement.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -38,7 +38,7 @@
Example: This code is almost the same as the previous example above with
a slight twist in logic.
</p>
-<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="special">(</span>
<span class="identifier">do_</span>
<span class="special">[</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___if_else_____statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___if_else_____statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___if_else_____statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -42,7 +42,7 @@
== 5"</span></code> or <code class="computeroutput"><span class="string">" <
5"</span></code> depending on the element's actual value:
</p>
-<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="identifier">if_</span><span class="special">(</span><span class="identifier">arg1</span> <span class="special">></span> <span class="number">5</span><span class="special">)</span>
<span class="special">[</span>
<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">" > 5\n"</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/block_statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/block_statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/block_statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -55,7 +55,7 @@
Outside the square brackets, block statements should be grouped. For
example:
</p>
-<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="special">(</span>
<span class="identifier">do_this</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">),</span>
<span class="identifier">do_that</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/for__statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/for__statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/for__statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -41,7 +41,7 @@
value. A newline terminates the printout of each value.
</p>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">iii</span><span class="special">;</span>
-<span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="special">(</span>
<span class="identifier">for_</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">iii</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">iii</span><span class="special">)</span> <span class="special"><</span> <span class="identifier">arg1</span><span class="special">,</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">iii</span><span class="special">))</span>
<span class="special">[</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/switch__statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/switch__statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/switch__statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -41,7 +41,7 @@
<code class="computeroutput"><span class="string">"two"</span></code> or <code class="computeroutput"><span class="string">"other value"</span></code> depending on the
element's actual value:
</p>
-<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="identifier">switch_</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
<span class="special">[</span>
<span class="identifier">case_</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"one"</span><span class="special">)</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">),</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/while__statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/while__statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/while__statement.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -35,7 +35,7 @@
prints out the number at each step. A newline terminates the printout
of each value.
</p>
-<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
<span class="special">(</span>
<span class="identifier">while_</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">--)</span>
<span class="special">[</span>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/algorithm.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/algorithm.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/algorithm.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -73,7 +73,7 @@
</p>
</div>
<div class="table">
-<a name="id704114"></a><p class="title"><b>Table 1.6. Iteration Algorithms</b></p>
+<a name="id706701"></a><p class="title"><b>Table 1.6. Iteration Algorithms</b></p>
<div class="table-contents"><table class="table" summary="Iteration Algorithms">
<colgroup>
<col>
@@ -123,7 +123,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id704392"></a><p class="title"><b>Table 1.7. Querying Algorithms</b></p>
+<a name="id706979"></a><p class="title"><b>Table 1.7. Querying Algorithms</b></p>
<div class="table-contents"><table class="table" summary="Querying Algorithms">
<colgroup>
<col>
@@ -415,7 +415,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
-<a name="id706863"></a><p class="title"><b>Table 1.8. Transformation Algorithms</b></p>
+<a name="id709451"></a><p class="title"><b>Table 1.8. Transformation Algorithms</b></p>
<div class="table-contents"><table class="table" summary="Transformation Algorithms">
<colgroup>
<col>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/container.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/container.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/container.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -137,7 +137,7 @@
does not use the member "dot" syntax.
</p>
<div class="table">
-<a name="id701063"></a><p class="title"><b>Table 1.4. Sample usage</b></p>
+<a name="id703650"></a><p class="title"><b>Table 1.4. Sample usage</b></p>
<div class="table-contents"><table class="table" summary="Sample usage">
<colgroup>
<col>
@@ -215,7 +215,7 @@
</p>
</div>
<div class="table">
-<a name="id701403"></a><p class="title"><b>Table 1.5. Lazy STL Container Functions</b></p>
+<a name="id703990"></a><p class="title"><b>Table 1.5. Lazy STL Container Functions</b></p>
<div class="table-contents"><table class="table" summary="Lazy STL Container Functions">
<colgroup>
<col>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -41,7 +41,7 @@
header files. There are no object files to link against.
</p>
<a name="phoenix.reference.organization.core"></a><h3>
-<a name="id681617"></a>
+<a name="id683289"></a>
<a class="link" href="organization.html#phoenix.reference.organization.core">Core</a>
</h3>
<p>
@@ -70,7 +70,7 @@
can again be another composite.
</p>
<div class="table">
-<a name="id681676"></a><p class="title"><b>Table 1.2. Modules</b></p>
+<a name="id683349"></a><p class="title"><b>Table 1.2. Modules</b></p>
<div class="table-contents"><table class="table" summary="Modules">
<colgroup>
<col>
@@ -199,7 +199,7 @@
the core module is defined in <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
</p>
<div class="table">
-<a name="id681965"></a><p class="title"><b>Table 1.3. Includes</b></p>
+<a name="id683637"></a><p class="title"><b>Table 1.3. Includes</b></p>
<div class="table-contents"><table class="table" summary="Includes">
<colgroup>
<col>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -61,7 +61,7 @@
into high gear quickly.
</p>
<a name="phoenix.starter_kit.functors_everywhere"></a><h4>
-<a name="id672922"></a>
+<a name="id674595"></a>
<a class="link" href="starter_kit.html#phoenix.starter_kit.functors_everywhere">Functors everywhere</a>
</h4>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_functions.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_functions.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_functions.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -46,7 +46,7 @@
<span class="identifier">function</span><span class="special"><</span><span class="identifier">is_odd_impl</span><span class="special">></span> <span class="identifier">is_odd</span><span class="special">;</span>
</pre>
<a name="phoenix.starter_kit.composites.lazy_functions.things_to_note_"></a><h6>
-<a name="id675750"></a>
+<a name="id677423"></a>
<a class="link" href="lazy_functions.html#phoenix.starter_kit.composites.lazy_functions.things_to_note_">Things
to note:</a>
</h6>
@@ -77,7 +77,7 @@
(See function.cpp)
</p>
<a name="phoenix.starter_kit.composites.lazy_functions.predefined_lazy_functions"></a><h6>
-<a name="id675929"></a>
+<a name="id677601"></a>
<a class="link" href="lazy_functions.html#phoenix.starter_kit.composites.lazy_functions.predefined_lazy_functions">Predefined
Lazy Functions</a>
</h6>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_operators.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_operators.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites/lazy_operators.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -70,7 +70,7 @@
</p>
</div>
<a name="phoenix.starter_kit.composites.lazy_operators.first_practical_example"></a><h6>
-<a name="id674672"></a>
+<a name="id676345"></a>
<a class="link" href="lazy_operators.html#phoenix.starter_kit.composites.lazy_operators.first_practical_example">First
Practical Example</a>
</h6>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/primitives/values.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/primitives/values.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/primitives/values.html 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -32,7 +32,7 @@
World"</span></code>.
</p>
<a name="phoenix.starter_kit.primitives.values.lazy_evaluation"></a><h6>
-<a name="id673084"></a>
+<a name="id674757"></a>
<a class="link" href="values.html#phoenix.starter_kit.primitives.values.lazy_evaluation">Lazy
Evaluation</a>
</h6>
@@ -65,7 +65,7 @@
anything and defers the evaluation for later.
</p>
<a name="phoenix.starter_kit.primitives.values.callbacks"></a><h6>
-<a name="id673309"></a>
+<a name="id674982"></a>
<a class="link" href="values.html#phoenix.starter_kit.primitives.values.callbacks">Callbacks</a>
</h6>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -31,6 +31,7 @@
phoenix/reference/modules/core/nothing.html
phoenix/reference/modules/function.html
phoenix/reference/modules/operator.html
+phoenix/reference/modules/operator/supported_operators.html
phoenix/reference/modules/statement.html
phoenix/reference/modules/statement/block_statement.html
phoenix/reference/modules/statement/if__statement.html
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -10,7 +10,7 @@
[section Bind]
['Binding] is the act of tying together a function to some arguments for
-deferred (lazy) evaluation. Named [link phoenix.reference.modules.function Lazy functions]
+deferred (lazy) evaluation. Named [link phoenix.reference.modules.function lazy functions]
require a bit of typing. Unlike (unnamed) lambda expressions, we need to write a
functor somewhere offline, detached from the call site. If you wish to transform a
plain function, member function or member variable to a lambda expression, `bind`
@@ -18,12 +18,13 @@
[note Take note that binders are monomorphic. Rather than binding
functions, the preferred way is to write true generic and polymorphic [link
-phoenix.reference.modules.function lazy-functions]. However, since most of the time we
+phoenix.reference.modules.function lazy functions]. However, since most of the time we
are dealing with adaptation of existing code, binders get the job done faster.]
There is a set of overloaded `bind` template functions. Each `bind(x)`
-function generates a suitable binder object, a [link phoenix.reference.composite
-composite].
+function generates a suitable binder object.
+[/, a [link phoenix.reference.composite
+composite].]
[section Binding Functions]
@@ -40,7 +41,7 @@
bind(&foo, arg1)
-This is now a full-fledged [link phoenix.reference.composite composite] that can finally
+This is now a full-fledged composite that can finally
be evaluated by another function call invocation. A second function call will
invoke the actual `foo` function. Example:
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/actor.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/actor.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/actor.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -60,9 +60,9 @@
[heading Models]
-* [link phoenix.reference.modules.core.actor `boost::phoenix::actor`]
-* [link phoenix.reference.modules.statement.if__statement `boost::phoenix::if_`]
-* [link phoenix.reference.modules.statement.try__catch__statement `boost::phoenix::try_`]
+* `boost::phoenix::actor`
+* `boost::phoenix::if_`
+* `boost::phoenix::try_`
[endsect]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/environment.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/environment.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/environment.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -48,8 +48,8 @@
[heading Models]
-* [link phoenix.reference.modules.core.basic_environment `boost::phoenix::basic_environment`]
-* [link phoenix.reference.modules.scope.scope_environment `boost::phoenix::scoped_environment`]
+* `boost::phoenix::basic_environment`
+* `boost::phoenix::scoped_environment`
[endsect]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluation_policy.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluation_policy.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluation_policy.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -12,13 +12,14 @@
[heading Description]
Evaluation Policies are the classes which decide how the composite is to be evaluated with respect to the default evaluator.
+They are completly independent of the [link phoenix.reference.concepts.actor Actor].
[variablelist Notation
[[`F`] [Type fulfilling this concept]]
[[`f`] [Object of type F]]
- [[`Env`] [A type of __phoenix_concept_environment__]]
+ [[`Env`] [Type fulfilling the [link phoenix.reference.concepts.environment Environment concept]]]
[[`env`] [Object of type Env]]
- [[`A0...AN`] [Argument Types]]
+ [[`A0...AN`] [Types fulfilling the [link phoenix.reference.concepts.actor Actor Concept]]]
[[`a0...aN`] [Objects of type A0, ...AN]]
]
@@ -32,7 +33,7 @@
[heading Result Type Expressions]
[table
[[Expression] [Result Type] [Compile time Complexity]]
- [[`boost::result_of<F(Env, A0...AN)>::type|`] [Result of evaluation] [unspecified]]
+ [[`boost::result_of<F(Env, A0...AN)>::type|`] [Result of the evaluation] [unspecified]]
]
[heading Expression Semantics]
@@ -44,6 +45,29 @@
[heading Models]
-TODO (almost everything)
+* `boost::phoenix::value`
+* `boost::phoenix::reference`
+* `boost::phoenix::argument`
+* `boost::phoenix::null_eval`
+* `boost::phoenix::if_eval`
+* `boost::phoenix::if_else_eval`
+* `boost::phoenix::switch_eval`
+* `boost::phoenix::while_eval`
+* `boost::phoenix::do_while_eval`
+* `boost::phoenix::for_eval`
+* `boost::phoenix::try_catch_eval`
+* `boost::phoenix::try_catch_all_eval`
+* `boost::phoenix::throw_eval`
+* `boost::phoenix::construct_eval`
+* `boost::phoenix::new_eval`
+* `boost::phoenix::delete_eval`
+* `boost::phoenix::static_cast_eval`
+* `boost::phoenix::dynamic_cast_eval`
+* `boost::phoenix::reinterpret_cast_eval`
+* `boost::phoenix::const_cast_eval`
+* `boost::phoenix::local_variable`
+* `boost::phoenix::let_eval`
+* `boost::phoenix::lambda_eval`
+* `boost::phoenix::lambda_actor_eval`
[endsect]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluator.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluator.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/concepts/evaluator.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -21,9 +21,9 @@
[variablelist Notation
[[`Eval`] [Type fulfilling this concept]]
[[`eval`] [An object of type Eval]]
- [[`Expr`] [Type of the Actor Concept]]
+ [[`Expr`] [Type of the [link phoenix.reference.concepts.actor Actor Concept]]]
[[`expr`] [Object of type Expr]]
- [[`Env`] [Type fulfilling the Environment concept]]
+ [[`Env`] [Type fulfilling the [link phoenix.reference.concepts.environment Environment concept]]]
[[`env`] [Object of type Env]]
]
@@ -49,10 +49,10 @@
[heading Models]
-* eval_grammar
-* arity
-* no_nullary
-* switch_grammar
+* `boost::phoenix::eval_grammar`
+* `boost::phoenix::arity`
+* `boost::phoenix::no_nullary`
+* `boost::phoenix::switch_grammar`
[endsect]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -23,19 +23,19 @@
Whenever we see a constant in a partially applied function, an
- actor<value, T>
+ make_value<T>::type
(where T is the type of the constant) is automatically created for
us. For instance:
add(arg1, 6)
-Passing a second argument, `6`, an `actor<value, int>` is implicitly created
+Passing a second argument, `6`, an `make_value<int>::type` is implicitly created
behind the scenes. This is also equivalent to:
add(arg1, val(6))
-`val(x)` generates an `actor<value, T>` where `T` is the type of `x`. In most
+`val(x)` generates an `make_value<T>::type` where `T` is the type of `x`. In most
cases, there's no need to explicitly use `val`, but, as we'll see later on,
there are situations where this is unavoidable.
@@ -70,17 +70,17 @@
applied functions functions to be immutable values (see [link phoenix.reference.modules.core.values
Values]). To achieve our intent, we use:
- actor<reference, T&>
+ make_reference<T>::type
-This is similar to `actor<value, T>` above but instead holds a reference to a
+This is similar to `make_value<T>::type` befor but instead holds a reference to a
variable.
-We normally don't instantiate `actor<reference, T>` objects directly. Instead we
+We normally don't instantiate `make_reference<T>::type` objects directly. Instead we
use `ref`. For example (where `i` is an `int` variable):
add_assign(ref(i), 2)
-[h2 Evaluating a Reference]
+[heading Evaluating a Reference]
References are actors. Hence, references can be evaluated. Such invocation gives
the references's identity. Example:
@@ -99,7 +99,7 @@
#include <boost/phoenix/core/reference.hpp>
Another free function `cref(cv)` may also be used. `cref(cv)` creates an
-`actor<reference, T const&>` object. This is similar to `actor<value, T>` but
+`make_reference<T const>::type` object. This is similar to `make_value<T>::type` but
when the data to be passed as argument to a function is heavy and expensive to
copy by value, the `cref(cv)` offers a lighter alternative.
@@ -111,14 +111,14 @@
We use an instance of:
- actor<argument, mpl::int_<N> >
+ make_argument< mpl::int_<N> >::type
to represent the Nth function argument. The argument placeholder acts as an
imaginary data-bin where a function argument will be placed.
-[h2 Predefined Arguments]
+[heading Predefined Arguments]
-There are a few predefined instances of `actor<argument, mpl::int_<N> >` named
+There are a few predefined instances of `make_argument< mpl::int_<N> >::type` named
`arg1`..`argN`, and its __bll__ counterpart `_1`..`_N`. (where N is a predefined
maximum).
@@ -136,17 +136,16 @@
[note You can set `PHOENIX_ARG_LIMIT`, the predefined maximum
placeholder index. By default, `PHOENIX_ARG_LIMIT` is set to `PHOENIX_LIMIT`
-(See [link phoenix.reference.actor Actor]).]
+(See [link phoenix.reference.concepts.actor Actor]).]
-You see the use make_argument this is a convenience class wrapping the `compose` class:
+You see the use of make_argument this is a convenience class wrapping the `compose` class:
template <typename N>
struct make_argument : compose<argument, N> {};
This scheme of actor creation is used throughout the library and follows the DRY principle.
-See [link phoenix.reference.composite Composites] for more details.
-[h2 User Defined Arguments]
+[heading User Defined Arguments]
When appropriate, you can define your own `argument` names. For example:
@@ -165,11 +164,11 @@
member functions on an `argument` actor.
This is possible by supplying a custom `actor` which has a member
-generator function. See [link phoenix.advanced.extending.extending_actors Extending Actors]
+generator function. See [link phoenix.advanced_topics.extending_actors Extending Actors]
for more details.
]
-[h2 Evaluating an Argument]
+[heading Evaluating an Argument]
An argument, when evaluated, selects the Nth argument from the those passed
in by the client.
@@ -190,7 +189,7 @@
123
Hello World
-[h2 Extra Arguments]
+[heading Extra Arguments]
In C and C++, a function can have extra arguments that are not at all used by
the function body itself. These extra arguments are simply ignored.
@@ -226,8 +225,8 @@
#include <boost/phoenix/core/nothing.hpp>
-Finally, the `actor<null_actor>` does nothing; (a "bum", if you will :-).
-There's a sole `actor<null_actor>` instance named "nothing". This actor is
+Finally, the `compose<null_eval>::type` does nothing; (a "bum", if you will :-).
+There's a sole `compose<null_eval>::type` instance named "nothing". This actor is
actually useful in situations where we don't want to do anything. (See
[link phoenix.reference.modules.statement.for__statement for_ Statement] for example).
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -12,11 +12,13 @@
#include <boost/phoenix/function.hpp>
The `function` class template provides a mechanism for implementing lazily
-evaluated functions. Syntactically, a lazy function looks like an ordinary C/C++ function.
-The function call looks familiar and feels the same as ordinary C++ functions.
-However, unlike ordinary functions, the actual function execution is deferred.
+evaluated functions. Syntactically, a lazy function looks like an ordinary C/C++
+function. The function call looks familiar and feels the same as ordinary C++
+functions. However, unlike ordinary functions, the actual function execution is
+deferred.
-Unlike ordinary function pointers or functor objects that need to be explicitly bound through the bind function (see [link phoenix.reference.modules.bind Bind]),
+Unlike ordinary function pointers or functor objects that need to be explicitly
+bound through the bind function (see [link phoenix.reference.modules.bind Bind]),
the argument types of these functions are automatically lazily bound.
In order to create a lazy function, we need to implement a model of the
@@ -66,7 +68,7 @@
function<factorial_impl> factorial;
Invoking a lazy function such as `factorial` does not immediately execute the function
-object `factorial_impl`. Instead, an [link phoenix.reference.actor `actor`] object is
+object `factorial_impl`. Instead, an [link phoenix.reference.concepts.actor actor] object is
created and returned to the caller. Example:
factorial(arg1)
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -11,7 +11,7 @@
The maximum number of actual parameters is limited by the
preprocessor constant PHOENIX_COMPOSITE_LIMIT. Note though, that this limit
should not be greater than PHOENIX_LIMIT. By default, `PHOENIX_COMPOSITE_LIMIT`
-is set to `PHOENIX_LIMIT` (See [link phoenix.reference.actor Actor]).
+is set to `PHOENIX_LIMIT` (See [link phoenix.reference.concepts.actor Actor]).
]
[section Object]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -21,10 +21,10 @@
1 / -arg1
arg1 < 150
-We have seen the lazy operators in action (see [link phoenix.starter_kit.lazy_operators
-Quick Start]). Let's go back and examine them a little bit further:
+We have seen the lazy operators in action (see [link phoenix.starter_kit.composites.lazy_operators
+Quick Start - Lazy Operators]). Let's go back and examine them a little bit further:
- find_if(c.begin(), c.end(), arg1 % 2 == 1)
+ std::find_if(c.begin(), c.end(), arg1 % 2 == 1)
Through operator overloading, the expression `arg1 % 2 == 1` actually generates
an actor. This actor object is passed on to STL's `find_if` function. From
@@ -35,8 +35,8 @@
`arg1 % 2 == 1` where arg1 is replaced by the container's element.
Like lazy functions (see
-[link phoenix.reference.modules.function `function`]), lazy operators are not immediately executed
-when invoked. Instead, an actor (see [link phoenix.reference.actor actor])
+[link phoenix.reference.modules.function Function]), lazy operators are not immediately executed
+when invoked. Instead, an actor (see [link phoenix.reference.concepts.actor Actor])
object is created and returned to the caller. Example:
(arg1 + arg2) * arg3
@@ -52,7 +52,7 @@
# A binary operator, except `->*` will be lazily evaluated when
/at least/ one of its operands is an actor object
- (see [link phoenix.reference.actor actors]).
+ (see [link phoenix.reference.concepts.actor Actor]).
# Unary operators are lazily evaluated if their argument is an actor object.
# Operator `->*` is lazily evaluated if the left hand argument is an actor object.
# The result of a lazy operator is an actor object that can in turn allow the
@@ -77,27 +77,27 @@
Note that at least one operand of any operator must be a valid actor
for lazy evaluation to take effect. To force lazy evaluation of an
ordinary expression, we can use `ref(x)`, `val(x)` or `cref(x)` to
-transform an operand into a valid actor object (see [link phoenix.reference.modules.core Core].
+transform an operand into a valid actor object (see [link phoenix.reference.modules.core Core]).
For example:
1 << 3; // Immediately evaluated
val(1) << 3; // Lazily evaluated
-[h2 Supported operators]
+[section Supported operators]
-[h3 Unary operators]
+[heading Unary operators]
prefix: ~, !, -, +, ++, --, & (reference), * (dereference)
postfix: ++, --
-[h3 Binary operators]
+[heading Binary operators]
=, [], +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
+, -, *, /, %, &, |, ^, <<, >>
==, !=, <, >, <=, >=
&&, ||, ->*
-[h3 Ternary operator]
+[heading Ternary operator]
if_else(c, a, b)
@@ -105,7 +105,7 @@
overload the conditional expression: `c ? a : b`, the if_else pseudo function is
provided for this purpose. The behavior is identical, albeit in a lazy manner.
-[h3 Member pointer operator]
+[heading Member pointer operator]
a->*member_object_pointer
a->*member_function_pointer
@@ -159,3 +159,5 @@
[endsect]
+[endsect]
+
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -30,18 +30,18 @@
We use an instance of:
- actor<local_variable<Key> >
+ make_local_variable<Key>::type
to represent a local variable. The local variable acts as an imaginary data-bin
where a local, stack based data will be placed. `Key` is an arbitrary type that
is used to identify the local variable. Example:
struct size_key;
- actor<local_variable<size_key> > size;
+ make_local_variable<size_key>::type size;
[*Predefined Local Variables]
-There are a few predefined instances of `actor<local_variable<Key> >`
+There are a few predefined instances of `make_local_variable<Key>::type`
named `_a`..`_z` that you can already use. To make use of them, simply use the
`namespace boost::phoenix::local_names`:
@@ -280,7 +280,7 @@
argument: `arg2`. Hence: _a = arg2. This local variable is visible inside the
lambda scope.
-(See [@../../example/users_manual/lambda.cpp lambda.cpp])
+(See [@../../example/lambda.cpp lambda.cpp])
[endsect]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -12,13 +12,13 @@
[*/Lazy statements.../]
The primitives and composite building blocks presented so far are sufficiently
-powerful to construct quite elaborate structures. We have presented lazy-
-functions and lazy-operators. How about lazy-statements? First, an appetizer:
+powerful to construct quite elaborate structures. We have presented lazy-functions
+and lazy-operators. How about lazy-statements? First, an appetizer:
Print all odd-numbered contents of an STL container using `std::for_each`
-([@../../example/users_manual/all_odds.cpp all_odds.cpp]):
+([@../../example/all_odds.cpp all_odds.cpp]):
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
if_(arg1 % 2 == 1)
[
cout << arg1 << ' '
@@ -77,7 +77,7 @@
Outside the square brackets, block statements should be grouped. For example:
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
(
do_this(arg1),
do_that(arg1)
@@ -125,7 +125,7 @@
Example: This code prints out all the elements and appends `" > 5"`, `" == 5"`
or `" < 5"` depending on the element's actual value:
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
if_(arg1 > 5)
[
cout << arg1 << " > 5\n"
@@ -168,7 +168,7 @@
Example: This code prints out `"one"`, `"two"` or `"other value"` depending on the
element's actual value:
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
switch_(arg1)
[
case_<1>(std::cout << val("one") << '\n'),
@@ -193,7 +193,7 @@
Example: This code decrements each element until it reaches zero and prints out
the number at each step. A newline terminates the printout of each value.
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
(
while_(arg1--)
[
@@ -223,7 +223,7 @@
Example: This code is almost the same as the previous example above with a
slight twist in logic.
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
(
do_
[
@@ -259,7 +259,7 @@
newline terminates the printout of each value.
int iii;
- for_each(c.begin(), c.end(),
+ std::for_each(c.begin(), c.end(),
(
for_(ref(iii) = 0, ref(iii) < arg1, ++ref(iii))
[
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/example/all_odds.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/example/all_odds.cpp 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -0,0 +1,35 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <vector>
+#include <algorithm>
+#include <iostream>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/operator.hpp>
+#include <boost/phoenix/statement.hpp>
+
+int
+main()
+{
+ using boost::phoenix::if_;
+ using boost::phoenix::arg_names::arg1;
+
+ int init[] = { 2, 10, 4, 5, 1, 6, 8, 3, 9, 7 };
+ std::vector<int> c(init, init + 10);
+ typedef std::vector<int>::iterator iterator;
+
+ // Print all odd contents of an stl container c
+ std::for_each(c.begin(), c.end(),
+ if_(arg1 % 2 == 1)
+ [
+ std::cout << arg1 << ' '
+ ]
+ );
+
+ std::cout << std::endl;
+
+ return 0;
+}
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/example/lambda.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/example/lambda.cpp 2010-08-16 13:52:36 EDT (Mon, 16 Aug 2010)
@@ -0,0 +1,73 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <iostream>
+#include <algorithm>
+#include <vector>
+
+#include <boost/phoenix/scope.hpp>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/operator.hpp>
+#include <boost/phoenix/function.hpp>
+
+namespace lazy_stuff
+{
+ using boost::phoenix::function;
+
+ struct for_each_impl
+ {
+ typedef void result_type;
+
+ template <typename C, typename F>
+ void operator()(C& c, F f) const
+ {
+ std::for_each(c.begin(), c.end(), f);
+ }
+ };
+
+ function<for_each_impl> const for_each = for_each_impl();
+
+ struct push_back_impl
+ {
+ typedef void result_type;
+
+ template <typename C, typename T>
+ void operator()(C& c, T& x) const
+ {
+ c.push_back(x);
+ }
+ };
+
+ function<push_back_impl> const push_back = push_back_impl();
+}
+
+int
+main()
+{
+ {
+ using lazy_stuff::for_each;
+ using lazy_stuff::push_back;
+
+ using boost::phoenix::lambda;
+ using boost::phoenix::arg_names::arg1;
+ using boost::phoenix::arg_names::arg2;
+ using boost::phoenix::local_names::_a;
+
+ int x = 10;
+ std::vector<std::vector<int> > v(10);
+
+ for_each(arg1,
+ lambda(_a = arg2)
+ [
+ push_back(arg1, _a)
+ ]
+ )
+ (v, x);
+ }
+
+ return 0;
+}
+
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk