Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64726 - in sandbox/SOC/2010/phoenix3: boost/phoenix/scope libs/phoenix/doc libs/phoenix/doc/html libs/phoenix/doc/html/images libs/phoenix/doc/html/phoenix libs/phoenix/doc/html/phoenix/advanced libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail libs/phoenix/doc/html/phoenix/notes libs/phoenix/doc/html/phoenix/notes/performance libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences libs/phoenix/doc/html/phoenix/reference libs/phoenix/doc/html/phoenix/reference/core libs/phoenix/doc/html/phoenix/reference/modules libs/phoenix/doc/html/phoenix/starter_kit libs/phoenix/doc/notes libs/phoenix/doc/reference libs/phoenix/doc/starter_kit libs/phoenix/test/scope
From: thom.heller_at_[hidden]
Date: 2010-08-10 11:29:18


Author: theller
Date: 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
New Revision: 64726
URL: http://svn.boost.org/trac/boost/changeset/64726

Log:
started with port of pheonix2 docs
Added:
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/acknowledgement.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/acknowledgement.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/composites.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/compiletime.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/runtime.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_bind.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_function.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__bind.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__function.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/arguments.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/constant_references.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/nothing.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/references.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/values.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/algorithm.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/container.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/references.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/arguments.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/construct__new__delete__casts.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_statements.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/more.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/references.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/wrap_up.html (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/performance.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/porting_from_2_0.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/actor.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/references.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/arguments.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/composites.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/function.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/more.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/object.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/operator.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/references.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/statement.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/values.qbk (contents, props changed)
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/wrap_up.qbk (contents, props changed)
Binary files modified:
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/images/organization.png
Text files modified:
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp | 2
   sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp | 9
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/Jamfile | 10
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html | 334 ++++++++++++++++++++++++---------------
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/introduction.html | 21 -
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest | 53 ++++++
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk | 11 +
   sandbox/SOC/2010/phoenix3/libs/phoenix/doc/preface.qbk | 15 +
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp | 8
   sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp | 6
   10 files changed, 316 insertions(+), 153 deletions(-)

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -82,7 +82,7 @@
 
         template <typename Env, typename A>
         typename result<lambda_actor_eval(Env&, A const&)>::type const
- operator()(Env& env, A const& a)
+ operator()(Env& env, A const& a) const
         {
             return proto::value(a)(env);
         }

Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -45,7 +45,7 @@
 
         template <typename Env, typename Expr, typename Vars>
         typename result<let_eval(Env&, Expr const&, Vars const&)>::type
- operator()(Env& env, Expr const& expr, Vars const& vars)
+ operator()(Env& env, Expr const& expr, Vars const& vars) const
         {
             typename result<let_eval(Env&, Expr const&, Vars const&)>::env_type
                 args(
@@ -69,7 +69,6 @@
     template <typename Vars, typename Map>
     struct let_actor_gen
     {
-
         template <typename Expr>
         typename make_let<Expr, Vars, Map>::type const
         operator[](Expr const& expr) const
@@ -140,9 +139,9 @@
             );
         }
 
- #define PHOENIX_LOCAL_GEN_NAME let_actor_gen
- #include <boost/phoenix/scope/detail/local_gen.hpp>
- #undef PHOENIX_LOCAL_GEN_NAME
+ #define PHOENIX_LOCAL_GEN_NAME let_actor_gen
+ #include <boost/phoenix/scope/detail/local_gen.hpp>
+ #undef PHOENIX_LOCAL_GEN_NAME
     };
 
     let_gen const let = let_gen();

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/Jamfile
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/Jamfile (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/Jamfile 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -7,8 +7,8 @@
 #==============================================================================
 
 project phoenix/doc ;
-import boostbook : boostbook ;
-using quickbook ;
+import boostbook ;
+import quickbook ;
 
 path-constant images : html ;
 
@@ -17,8 +17,14 @@
         phoenix3.qbk
     :
         <xsl:param>boost.root=../../../..
+ <xsl:param>chunk.section.depth=4
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>toc.section.depth=3
+ <xsl:param>toc.max.depth=3
+ <xsl:param>generate.section.toc.level=4
         <xsl:param>boost.libraries=../../../libraries.htm
         <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
+ <format>html:<xsl:param>admon.graphics.path=images/
         <format>pdf:<xsl:param>img.src.path=$(images)/
         <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/phoenix/doc/html
     ;

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/acknowledgement.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/acknowledgement.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,32 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Acknowledgement]
+
+# Hartmut Kaiser implemented the original lazy casts and constructors based on
+ his original work on Spirit SE "semantic expressions" (the precursor to
+ Phoenix).
+# Angus Leeming implemented the container functions on Phoenix-1 which I then
+ ported to Phoenix-2.
+# Daniel Wallin helped with the scope module, local variables, let and lambda
+ and the algorithms. I frequently discuss design issues with Daniel on Yahoo Messenger.
+# Jaakko Jarvi. DA Lambda MAN!
+# Dave Abrahams, for his constant presence, wherever, whenever.
+# Aleksey Gurtovoy, DA MPL MAN!
+# Doug Gregor, always a source of inpiration.
+# Dan Marsden, did almost all the work in bringing Phoenix-2 out the door.
+# Eric Niebler did a 2.0 pre-release review and wrote some range related code
+ that Phoenix stole and used in the algorithms.
+# Thorsten Ottosen; Eric's range_ex code began life as "container_algo" in the
+ old boost sandbox, by Thorsten in 2002-2003.
+# Jeremy Siek, even prior to Thorsten, in 2001, started the "container_algo".
+# Vladimir Prus wrote the mutating algorithms code from the Boost Wiki.
+# Daryle Walker did a 2.0 pre-release review.
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,35 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Advanced]
+
+[section Phoenix in Detail]
+
+Section explaining how phoenix expression look like, the structure of the AST, and so on
+
+[section Composites]
+[endsect]
+
+[section AST structure]
+[endsect]
+
+[endsect]
+
+[section Extending]
+
+Section about how to extend phoenix
+
+[endsect]
+
+[section Transformations]
+
+[endsect]
+
+
+[endsect]

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/images/organization.png
==============================================================================
Binary files. No diff available.

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-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -3,22 +3,15 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Chapter&#160;1.&#160;Phoenix 3.0</title>
 <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
-<link rel="start" href="index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="next" href="phoenix/introduction.html" title="Introduction">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</tr></table>
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="phoenix/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
-<div class="chapter" lang="en">
+<div class="spirit-nav"><a accesskey="n" href="phoenix/introduction.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="chapter">
 <div class="titlepage"><div>
 <div><h2 class="title">
 <a name="phoenix"></a>Chapter&#160;1.&#160;Phoenix 3.0</h2></div>
@@ -33,7 +26,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller</p></div>
 <div><div class="legalnotice">
-<a name="id2813717"></a><p>
+<a name="id671499"></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>
@@ -42,76 +35,158 @@
 <div class="toc">
 <p><b>Table of Contents</b></p>
 <dl>
-<dt><span class="section">Preface</span></dt>
 <dt><span class="section">Introduction</span></dt>
-<dt><span class="section">Actors</span></dt>
-<dd><dl><dt><span class="section">Concepts</span></dt></dl></dd>
+<dt><span class="section">Starter Kit</span></dt>
+<dd><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section">Arguments</span></dt>
+<dt><span class="section">Composites</span></dt>
+<dt><span class="section">Lazy Operators</span></dt>
+<dt><span class="section">Lazy Statements</span></dt>
+<dt><span class="section"><a href="phoenix/starter_kit/construct__new__delete__casts.html">Construct,
+ New, Delete, Casts</a></span></dt>
+<dt><span class="section">Lazy Functions</span></dt>
+<dt><span class="section">More</span></dt>
+</dl></dd>
+<dt><span class="section">Reference</span></dt>
+<dd><dl>
+<dt><span class="section">Basics</span></dt>
+<dt><span class="section">Organization</span></dt>
+<dt><span class="section">Concepts</span></dt>
+<dt><span class="section">Actor</span></dt>
+<dt><span class="section">Composite</span></dt>
+<dt><span class="section">Core</span></dt>
+<dd><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section"><a href="phoenix/reference/core/constant_references.html">Constant
+ References</a></span></dt>
+<dt><span class="section">Arguments</span></dt>
+<dt><span class="section">Nothing</span></dt>
+</dl></dd>
+<dt><span class="section">Modules</span></dt>
+<dd><dl>
+<dt><span class="section">Core</span></dt>
+<dt><span class="section">Function</span></dt>
+<dt><span class="section">Operator</span></dt>
+<dt><span class="section">Statement</span></dt>
+<dt><span class="section">Object</span></dt>
+<dt><span class="section">Scope</span></dt>
+<dt><span class="section">Bind</span></dt>
+<dt><span class="section">Container</span></dt>
+<dt><span class="section">Algorithm</span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section">Advanced</span></dt>
+<dd><dl>
+<dt><span class="section">Phoenix in Detail</span></dt>
+<dd><dl>
+<dt><span class="section">Composites</span></dt>
+<dt><span class="section"><a href="phoenix/advanced/phoenix_in_detail/ast_structure.html">AST
+ structure</a></span></dt>
+</dl></dd>
+<dt><span class="section">Extending</span></dt>
+<dt><span class="section">Transformations</span></dt>
+</dl></dd>
+<dt><span class="section">Notes</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="phoenix/notes/portability__similarities_and_differences.html">Portability,
+ Similarities and Differences</a></span></dt>
+<dd><dl>
+<dt><span class="section">Boost.Bind</span></dt>
+<dt><span class="section">std::bind</span></dt>
+<dt><span class="section">Boost.Function</span></dt>
+<dt><span class="section">std::function</span></dt>
+<dt><span class="section"><a href="phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html">C++0x
+ Lambdas</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="phoenix/notes/porting_from_phoenix_2_0.html">Porting from
+ Phoenix 2.0</a></span></dt>
+<dt><span class="section">Performance</span></dt>
+<dd><dl>
+<dt><span class="section">Compiletime</span></dt>
+<dt><span class="section">Runtime</span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section">Wrap Up</span></dt>
+<dt><span class="section">Acknowledgement</span></dt>
+<dt><span class="section">References</span></dt>
 </dl>
 </div>
+<a name="phoenix.preface"></a><h2>
+<a name="id702229"></a>
+ <a class="link" href="index.html#phoenix.preface">Preface</a>
+ </h2>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
 <p>
- </p>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="phoenix.preface"></a><a class="link" href="index.html#phoenix.preface" title="Preface">Preface</a>
-</h2></div></div></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
         <span class="emphasis"><em>Functional programming is so called because a program consists
         entirely of functions. The main program itself is written as a function which
         receives the program's input as its argument and delivers the program's output
         as its result. Typically the main function is defined in terms of other functions,
         which in turn are defined in terms of still more functions until at the bottom
         level the functions are language primitives.</em></span>
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
         <span class="bold"><strong>John Hughes</strong></span>-- <span class="emphasis"><em>Why Functional Programming
         Matters</em></span>
- </p></blockquote></div>
+ </p>
 <p>
- <span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
- </p>
-<a name="phoenix.preface.description"></a><h3>
-<a name="id2774017"></a>
- <a class="link" href="index.html#phoenix.preface.description">Description</a>
- </h3>
-<p>
- Phoenix enables Functional Programming (FP) in C++. The design and implementation
- of Phoenix is highly influenced by FC++
- by Yannis Smaragdakis and Brian McNamara and the BLL
- (Boost Lambda Library) by Jaakko Jaarvi and Gary Powell. Phoenix is a blend
- of FC++ and BLL using the implementation techniques used in the Spirit
- inline parser.
     </p>
+</blockquote></div>
 <p>
- Phoenix is a header only library. It is extremely modular by design. One can
- extract and use only a small subset of the full library, literally tearing
- the library into small pieces, without fear that the pieces won't work anymore.
- The library is organized in highly independent modules and layers.
- </p>
-<a name="phoenix.preface.how_to_use_this_manual"></a><h3>
-<a name="id2774071"></a>
- <a class="link" href="index.html#phoenix.preface.how_to_use_this_manual">How to use this manual</a>
- </h3>
-<p>
- The Phoenix library is organized in logical modules. This documentation provides
- a user's guide and reference for each module in the library. A simple and clear
- code example is worth a hundred lines of documentation; therefore, the user's
- guide is presented with abundant examples annotated and explained in step-wise
- manner. The user's guide is based on examples: lots of them.
- </p>
+ <span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
+ </p>
+<a name="phoenix.description"></a><h3>
+<a name="id670287"></a>
+ <a class="link" href="index.html#phoenix.description">Description</a>
+ </h3>
 <p>
- As much as possible, forward information (i.e. citing a specific piece of information
- that has not yet been discussed) is avoided in the user's manual portion of
- each module. In many cases, though, it is unavoidable that advanced but related
- topics not be interspersed with the normal flow of discussion. To alleviate
- this problem, topics categorized as "advanced" may be skipped at
- first reading.
- </p>
+ Phoenix enables Functional Programming (FP) in C++. The design and implementation
+ of Phoenix is highly influenced by FC++
+ by Yannis Smaragdakis and Brian McNamara and the BLL
+ (Boost Lambda Library) by Jaakko Jaarvi and Gary Powell. Phoenix is a blend of
+ FC++ and BLL using the implementation techniques used in the Spirit
+ inline parser.
+ </p>
 <p>
- Some icons are used to mark certain topics indicative of their relevance. These
- icons precede some text to indicate:
- </p>
+ Phoenix is a header only library. It is extremely modular by design. One can
+ extract and use only a small subset of the full library, literally tearing the
+ library into small pieces, without fear that the pieces won't work anymore. The
+ library is organized in highly independent modules and layers.
+ </p>
+<a name="phoenix.how_to_use_this_manual"></a><h3>
+<a name="id670334"></a>
+ <a class="link" href="index.html#phoenix.how_to_use_this_manual">How to use this manual</a>
+ </h3>
+<p>
+ The Phoenix library is organized in logical modules. This documentation provides
+ a user's guide and reference for each module in the library. A simple and clear
+ code example is worth a hundred lines of documentation; therefore, the user's
+ guide is presented with abundant examples annotated and explained in step-wise
+ manner. The user's guide is based on examples: lots of them.
+ </p>
+<p>
+ As much as possible, forward information (i.e. citing a specific piece of information
+ that has not yet been discussed) is avoided in the user's manual portion of each
+ module. In many cases, though, it is unavoidable that advanced but related topics
+ not be interspersed with the normal flow of discussion. To alleviate this problem,
+ topics categorized as "advanced" may be skipped at first reading.
+ </p>
+<p>
+ Some icons are used to mark certain topics indicative of their relevance. These
+ icons precede some text to indicate:
+ </p>
 <div class="table">
-<a name="id2774111"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
+<a name="id670365"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
 <div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -120,92 +195,97 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Icon
- </p>
- </th>
+ <p>
+ Icon
+ </p>
+ </th>
 <th>
- <p>
- Name
- </p>
- </th>
+ <p>
+ Name
+ </p>
+ </th>
 <th>
- <p>
- Meaning
- </p>
- </th>
+ <p>
+ Meaning
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span>
- </p>
- </td>
-<td>
- <p>
- Note
- </p>
- </td>
-<td>
- <p>
- Information provided is auxiliary but will give the reader a deeper
- insight into a specific topic. May be skipped.
- </p>
- </td>
+ <p>
+ <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Note
+ </p>
+ </td>
+<td>
+ <p>
+ Information provided is auxiliary but will give the reader a deeper
+ insight into a specific topic. May be skipped.
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <span class="inlinemediaobject"><img src="images/alert.png" alt="alert"></span>
- </p>
- </td>
-<td>
- <p>
- Alert
- </p>
- </td>
-<td>
- <p>
- Information provided is of utmost importance.
- </p>
- </td>
+ <p>
+ <span class="inlinemediaobject"><img src="images/alert.png" alt="alert"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Alert
+ </p>
+ </td>
+<td>
+ <p>
+ Information provided is of utmost importance.
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <span class="inlinemediaobject"><img src="images/tip.png" alt="tip"></span>
- </p>
- </td>
-<td>
- <p>
- Tip
- </p>
- </td>
-<td>
- <p>
- A potentially useful and helpful piece of information.
- </p>
- </td>
+ <p>
+ <span class="inlinemediaobject"><img src="images/tip.png" alt="tip"></span>
+ </p>
+ </td>
+<td>
+ <p>
+ Tip
+ </p>
+ </td>
+<td>
+ <p>
+ A potentially useful and helpful piece of information.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<br class="table-break"><a name="phoenix.preface._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
-<a name="id2773024"></a>
- <a class="link" href="index.html#phoenix.preface._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>
+<br class="table-break"><div class="sidebar">
+<p class="title"><b></b></p>
 <p>
+ <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span> <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span></code> is assumed if nothing else is explicitly
+ noted
   </p>
+</div>
+<a name="phoenix._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
+<a name="id711183"></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>
 <p>
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: June 08, 2010 at 11:00:16 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 10, 2010 at 15:20:07 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="phoenix/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="phoenix/introduction.html"><img src="images/next.png" alt="Next"></a></div>
 </body>
 </html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/acknowledgement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/acknowledgement.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,84 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Acknowledgement</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="wrap_up.html" title="Wrap Up">
+<link rel="next" href="references.html" title="References">
+</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="wrap_up.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="references.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.acknowledgement"></a><a class="link" href="acknowledgement.html" title="Acknowledgement">Acknowledgement</a>
+</h2></div></div></div>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Hartmut Kaiser implemented the original lazy casts and constructors based
+ on his original work on Spirit SE "semantic expressions" (the precursor
+ to Phoenix).
+ </li>
+<li class="listitem">
+ Angus Leeming implemented the container functions on Phoenix-1 which I then
+ ported to Phoenix-2.
+ </li>
+<li class="listitem">
+ Daniel Wallin helped with the scope module, local variables, let and lambda
+ and the algorithms. I frequently discuss design issues with Daniel on Yahoo
+ Messenger.
+ </li>
+<li class="listitem">
+ Jaakko Jarvi. DA Lambda MAN!
+ </li>
+<li class="listitem">
+ Dave Abrahams, for his constant presence, wherever, whenever.
+ </li>
+<li class="listitem">
+ Aleksey Gurtovoy, DA MPL MAN!
+ </li>
+<li class="listitem">
+ Doug Gregor, always a source of inpiration.
+ </li>
+<li class="listitem">
+ Dan Marsden, did almost all the work in bringing Phoenix-2 out the door.
+ </li>
+<li class="listitem">
+ Eric Niebler did a 2.0 pre-release review and wrote some range related code
+ that Phoenix stole and used in the algorithms.
+ </li>
+<li class="listitem">
+ Thorsten Ottosen; Eric's range_ex code began life as "container_algo"
+ in the old boost sandbox, by Thorsten in 2002-2003.
+ </li>
+<li class="listitem">
+ Jeremy Siek, even prior to Thorsten, in 2001, started the "container_algo".
+ </li>
+<li class="listitem">
+ Vladimir Prus wrote the mutating algorithms code from the Boost Wiki.
+ </li>
+<li class="listitem">
+ Daryle Walker did a 2.0 pre-release review.
+ </li>
+</ol></div>
+</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 &#169; 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="wrap_up.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="references.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,46 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Advanced</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="reference/modules/algorithm.html" title="Algorithm">
+<link rel="next" href="advanced/phoenix_in_detail.html" title="Phoenix in Detail">
+</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="reference/modules/algorithm.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="advanced/phoenix_in_detail.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.advanced"></a><a class="link" href="advanced.html" title="Advanced">Advanced</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Phoenix in Detail</span></dt>
+<dd><dl>
+<dt><span class="section">Composites</span></dt>
+<dt><span class="section"><a href="advanced/phoenix_in_detail/ast_structure.html">AST
+ structure</a></span></dt>
+</dl></dd>
+<dt><span class="section">Extending</span></dt>
+<dt><span class="section">Transformations</span></dt>
+</dl></div>
+</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 &#169; 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="reference/modules/algorithm.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="advanced/phoenix_in_detail.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Extending</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../advanced.html" title="Advanced">
+<link rel="prev" href="phoenix_in_detail/ast_structure.html" title="AST structure">
+<link rel="next" href="transformations.html" title="Transformations">
+</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="phoenix_in_detail/ast_structure.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="transformations.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.advanced.extending"></a><a class="link" href="extending.html" title="Extending">Extending</a>
+</h3></div></div></div>
+<p>
+ Section about how to extend phoenix
+ </p>
+</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 &#169; 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="phoenix_in_detail/ast_structure.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="transformations.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Phoenix in Detail</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../advanced.html" title="Advanced">
+<link rel="prev" href="../advanced.html" title="Advanced">
+<link rel="next" href="phoenix_in_detail/composites.html" title="Composites">
+</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="../advanced.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="phoenix_in_detail/composites.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.advanced.phoenix_in_detail"></a><a class="link" href="phoenix_in_detail.html" title="Phoenix in Detail">Phoenix in Detail</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Composites</span></dt>
+<dt><span class="section"><a href="phoenix_in_detail/ast_structure.html">AST
+ structure</a></span></dt>
+</dl></div>
+<p>
+ Section explaining how phoenix expression look like, the structure of the
+ AST, and so on
+ </p>
+</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 &#169; 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="../advanced.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="phoenix_in_detail/composites.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,35 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>AST structure</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../phoenix_in_detail.html" title="Phoenix in Detail">
+<link rel="prev" href="composites.html" title="Composites">
+<link rel="next" href="../extending.html" title="Extending">
+</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="composites.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../phoenix_in_detail.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="../extending.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.advanced.phoenix_in_detail.ast_structure"></a><a class="link" href="ast_structure.html" title="AST structure">AST
+ structure</a>
+</h4></div></div></div></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 &#169; 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="composites.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../phoenix_in_detail.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="../extending.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/composites.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/composites.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Composites</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../phoenix_in_detail.html" title="Phoenix in Detail">
+<link rel="prev" href="../phoenix_in_detail.html" title="Phoenix in Detail">
+<link rel="next" href="ast_structure.html" title="AST structure">
+</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="../phoenix_in_detail.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../phoenix_in_detail.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="ast_structure.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.advanced.phoenix_in_detail.composites"></a><a class="link" href="composites.html" title="Composites">Composites</a>
+</h4></div></div></div></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 &#169; 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="../phoenix_in_detail.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../phoenix_in_detail.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="ast_structure.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Transformations</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../advanced.html" title="Advanced">
+<link rel="prev" href="extending.html" title="Extending">
+<link rel="next" href="../notes.html" title="Notes">
+</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="extending.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="../notes.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.advanced.transformations"></a><a class="link" href="transformations.html" title="Transformations">Transformations</a>
+</h3></div></div></div></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 &#169; 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="extending.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="../notes.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/introduction.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/introduction.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/introduction.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -3,26 +3,19 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Introduction</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
-<link rel="start" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
-<link rel="next" href="actors.html" title="Actors">
+<link rel="next" href="starter_kit.html" title="Starter Kit">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</tr></table>
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="actors.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="starter_kit.html"><img src="../images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="phoenix.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
 </h2></div></div></div>
@@ -64,7 +57,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="actors.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="starter_kit.html"><img src="../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Notes</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="advanced/transformations.html" title="Transformations">
+<link rel="next" href="notes/portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+</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="advanced/transformations.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="notes/portability__similarities_and_differences.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.notes"></a><a class="link" href="notes.html" title="Notes">Notes</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="notes/portability__similarities_and_differences.html">Portability,
+ Similarities and Differences</a></span></dt>
+<dd><dl>
+<dt><span class="section">Boost.Bind</span></dt>
+<dt><span class="section">std::bind</span></dt>
+<dt><span class="section">Boost.Function</span></dt>
+<dt><span class="section">std::function</span></dt>
+<dt><span class="section"><a href="notes/portability__similarities_and_differences/c__0x_lambdas.html">C++0x
+ Lambdas</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="notes/porting_from_phoenix_2_0.html">Porting from
+ Phoenix 2.0</a></span></dt>
+<dt><span class="section">Performance</span></dt>
+<dd><dl>
+<dt><span class="section">Compiletime</span></dt>
+<dt><span class="section">Runtime</span></dt>
+</dl></dd>
+</dl></div>
+</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 &#169; 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="advanced/transformations.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="notes/portability__similarities_and_differences.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Performance</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../notes.html" title="Notes">
+<link rel="prev" href="porting_from_phoenix_2_0.html" title="Porting from Phoenix 2.0">
+<link rel="next" href="performance/compiletime.html" title="Compiletime">
+</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="porting_from_phoenix_2_0.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="performance/compiletime.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.notes.performance"></a><a class="link" href="performance.html" title="Performance">Performance</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Compiletime</span></dt>
+<dt><span class="section">Runtime</span></dt>
+</dl></div>
+<p>
+ This section will contain some obversations and notes about performance of
+ the current implementation
+ </p>
+</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 &#169; 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="porting_from_phoenix_2_0.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="performance/compiletime.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/compiletime.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/compiletime.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Compiletime</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../performance.html" title="Performance">
+<link rel="prev" href="../performance.html" title="Performance">
+<link rel="next" href="runtime.html" title="Runtime">
+</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="../performance.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../performance.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="runtime.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.performance.compiletime"></a><a class="link" href="compiletime.html" title="Compiletime">Compiletime</a>
+</h4></div></div></div></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 &#169; 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="../performance.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../performance.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="runtime.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/runtime.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance/runtime.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Runtime</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../performance.html" title="Performance">
+<link rel="prev" href="compiletime.html" title="Compiletime">
+<link rel="next" href="../../wrap_up.html" title="Wrap Up">
+</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="compiletime.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../performance.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="../../wrap_up.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.performance.runtime"></a><a class="link" href="runtime.html" title="Runtime">Runtime</a>
+</h4></div></div></div></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 &#169; 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="compiletime.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../performance.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="../../wrap_up.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Portability, Similarities and Differences</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../notes.html" title="Notes">
+<link rel="prev" href="../notes.html" title="Notes">
+<link rel="next" href="portability__similarities_and_differences/boost_bind.html" title="Boost.Bind">
+</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="../notes.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="portability__similarities_and_differences/boost_bind.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.notes.portability__similarities_and_differences"></a><a class="link" href="portability__similarities_and_differences.html" title="Portability, Similarities and Differences">Portability,
+ Similarities and Differences</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Boost.Bind</span></dt>
+<dt><span class="section">std::bind</span></dt>
+<dt><span class="section">Boost.Function</span></dt>
+<dt><span class="section">std::function</span></dt>
+<dt><span class="section"><a href="portability__similarities_and_differences/c__0x_lambdas.html">C++0x
+ Lambdas</a></span></dt>
+</dl></div>
+<p>
+ Notes on portability with all the other existing FP libraries
+ </p>
+</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 &#169; 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="../notes.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="portability__similarities_and_differences/boost_bind.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_bind.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_bind.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Boost.Bind</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+<link rel="prev" href="../portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+<link rel="next" href="std__bind.html" title="std::bind">
+</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="../portability__similarities_and_differences.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="std__bind.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.portability__similarities_and_differences.boost_bind"></a><a class="link" href="boost_bind.html" title="Boost.Bind">Boost.Bind</a>
+</h4></div></div></div></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 &#169; 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="../portability__similarities_and_differences.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="std__bind.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_function.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_function.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Boost.Function</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+<link rel="prev" href="std__bind.html" title="std::bind">
+<link rel="next" href="std__function.html" title="std::function">
+</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="std__bind.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="std__function.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.portability__similarities_and_differences.boost_function"></a><a class="link" href="boost_function.html" title="Boost.Function">Boost.Function</a>
+</h4></div></div></div></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 &#169; 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="std__bind.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="std__function.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,35 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>C++0x Lambdas</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+<link rel="prev" href="std__function.html" title="std::function">
+<link rel="next" href="../porting_from_phoenix_2_0.html" title="Porting from Phoenix 2.0">
+</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="std__function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="../porting_from_phoenix_2_0.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.portability__similarities_and_differences.c__0x_lambdas"></a><a class="link" href="c__0x_lambdas.html" title="C++0x Lambdas">C++0x
+ Lambdas</a>
+</h4></div></div></div></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 &#169; 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="std__function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="../porting_from_phoenix_2_0.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__bind.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__bind.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>std::bind</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+<link rel="prev" href="boost_bind.html" title="Boost.Bind">
+<link rel="next" href="boost_function.html" title="Boost.Function">
+</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="boost_bind.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="boost_function.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.portability__similarities_and_differences.std__bind"></a><a class="link" href="std__bind.html" title="std::bind">std::bind</a>
+</h4></div></div></div></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 &#169; 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="boost_bind.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="boost_function.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__function.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__function.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>std::function</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../portability__similarities_and_differences.html" title="Portability, Similarities and Differences">
+<link rel="prev" href="boost_function.html" title="Boost.Function">
+<link rel="next" href="c__0x_lambdas.html" title="C++0x Lambdas">
+</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="boost_function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="c__0x_lambdas.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.notes.portability__similarities_and_differences.std__function"></a><a class="link" href="std__function.html" title="std::function">std::function</a>
+</h4></div></div></div></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 &#169; 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="boost_function.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../portability__similarities_and_differences.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="c__0x_lambdas.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Porting from Phoenix 2.0</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../notes.html" title="Notes">
+<link rel="prev" href="portability__similarities_and_differences/c__0x_lambdas.html" title="C++0x Lambdas">
+<link rel="next" href="performance.html" title="Performance">
+</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="portability__similarities_and_differences/c__0x_lambdas.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="performance.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.notes.porting_from_phoenix_2_0"></a><a class="link" href="porting_from_phoenix_2_0.html" title="Porting from Phoenix 2.0">Porting from
+ Phoenix 2.0</a>
+</h3></div></div></div>
+<p>
+ This section will be about porting existing code phoenix code to this new
+ port
+ </p>
+</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 &#169; 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="portability__similarities_and_differences/c__0x_lambdas.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="performance.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Reference</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="starter_kit/more.html" title="More">
+<link rel="next" href="reference/basics.html" title="Basics">
+</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="starter_kit/more.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="reference/basics.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Basics</span></dt>
+<dt><span class="section">Organization</span></dt>
+<dt><span class="section">Concepts</span></dt>
+<dt><span class="section">Actor</span></dt>
+<dt><span class="section">Composite</span></dt>
+<dt><span class="section">Core</span></dt>
+<dd><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section"><a href="reference/core/constant_references.html">Constant
+ References</a></span></dt>
+<dt><span class="section">Arguments</span></dt>
+<dt><span class="section">Nothing</span></dt>
+</dl></dd>
+<dt><span class="section">Modules</span></dt>
+<dd><dl>
+<dt><span class="section">Core</span></dt>
+<dt><span class="section">Function</span></dt>
+<dt><span class="section">Operator</span></dt>
+<dt><span class="section">Statement</span></dt>
+<dt><span class="section">Object</span></dt>
+<dt><span class="section">Scope</span></dt>
+<dt><span class="section">Bind</span></dt>
+<dt><span class="section">Container</span></dt>
+<dt><span class="section">Algorithm</span></dt>
+</dl></dd>
+</dl></div>
+</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 &#169; 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="starter_kit/more.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="reference/basics.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Actor</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="concepts.html" title="Concepts">
+<link rel="next" href="composite.html" title="Composite">
+</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="concepts.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="composite.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.actor"></a><a class="link" href="actor.html" title="Actor">Actor</a>
+</h3></div></div></div>
+<p>
+ The <code class="computeroutput"><span class="identifier">Actor</span></code> is the main concept
+ behind the library. Actors are function objects. An actor can accept 0 to
+ <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> arguments.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ You can set <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code>,
+ the predefined maximum arity an actor can take. By default, <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> is set to 10.
+ </p></td></tr>
+</table></div>
+<p>
+ Phoenix supplies an <code class="computeroutput"><span class="identifier">actor</span></code>
+ class template whose specializations model the <code class="computeroutput"><span class="identifier">Actor</span></code>
+ concept. <code class="computeroutput"><span class="identifier">actor</span></code> has one template
+ parameter, <code class="computeroutput"><span class="identifier">Expr</span></code>, that supplies
+ the underlying expression to evaluate.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Expr</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">actor</span>
+<span class="special">{</span>
+ <span class="identifier">return_type</span>
+ <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T0</span><span class="special">&gt;</span>
+ <span class="identifier">return_type</span>
+ <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T0</span><span class="special">&amp;</span> <span class="identifier">_0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">&gt;</span>
+ <span class="identifier">return_type</span>
+ <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">T0</span><span class="special">&amp;</span> <span class="identifier">_0</span><span class="special">,</span> <span class="identifier">T1</span><span class="special">&amp;</span> <span class="identifier">_1</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+ <span class="comment">//...
+</span><span class="special">};</span>
+</pre>
+<p>
+ The actor class accepts the arguments through a set of function call operators
+ for 0 to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> arities
+ (Don't worry about the details, for now. Note, for example, that we skimp
+ over the details regarding <code class="computeroutput"><span class="identifier">return_type</span></code>).
+ The arguments are then forwarded to the actor's <code class="computeroutput"><span class="identifier">Expr</span></code>
+ for evaluation.
+ </p>
+<a name="phoenix.reference.actor.todo"></a><h3>
+<a name="id717198"></a>
+ <a class="link" href="actor.html#phoenix.reference.actor.todo">TODO</a>
+ </h3>
+<p>
+ add some notes about the extension possibilities
+ </p>
+</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 &#169; 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="concepts.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="composite.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,266 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Basics</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
+<link rel="next" href="organization.html" title="Organization">
+</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="../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="organization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.basics"></a><a class="link" href="basics.html" title="Basics">Basics</a>
+</h3></div></div></div>
+<p>
+ Almost everything is a function in the Phoenix library that can be evaluated
+ as <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,</span> <span class="special">...,</span> a<span class="emphasis"><em>n</em></span><span class="special">)</span></code>, where <span class="emphasis"><em>n</em></span> is the function's
+ arity, or number of arguments that the function expects. Operators are also
+ functions. For example, <code class="computeroutput"><span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span></code> is
+ just a function with arity == 2 (or binary). <code class="computeroutput"><span class="identifier">a</span>
+ <span class="special">+</span> <span class="identifier">b</span></code>
+ is the same as <code class="computeroutput"><span class="identifier">add</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>, <code class="computeroutput"><span class="identifier">a</span>
+ <span class="special">+</span> <span class="identifier">b</span> <span class="special">+</span> <span class="identifier">c</span></code> is
+ the same as <code class="computeroutput"><span class="identifier">add</span><span class="special">(</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">),</span>
+ <span class="identifier">c</span><span class="special">)</span></code>.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ Amusingly, functions may even return functions. We shall see what this
+ means in a short while.
+ </p></td></tr>
+</table></div>
+<a name="phoenix.reference.basics.partial_function_application"></a><h3>
+<a name="id714414"></a>
+ <a class="link" href="basics.html#phoenix.reference.basics.partial_function_application">Partial
+ Function Application</a>
+ </h3>
+<p>
+ Think of a function as a black box. You pass arguments and it returns something
+ back. The figure below depicts the typical scenario.
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/fbox.png" alt="fbox"></span>
+ </p>
+<p>
+ A fully evaluated function is one in which all the arguments are given. All
+ functions in plain C++ are fully evaluated. When you call the <code class="computeroutput"><span class="identifier">sin</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> function, you have to pass a number x. The
+ function will return a result in return: the sin of x. When you call the
+ <code class="computeroutput"><span class="identifier">add</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code> function, you have to pass two numbers x
+ and y. The function will return the sum of the two numbers. The figure below
+ is a fully evaluated <code class="computeroutput"><span class="identifier">add</span></code>
+ function.
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/adder.png" alt="adder"></span>
+ </p>
+<p>
+ A partially applied function, on the other hand, is one in which not all
+ the arguments are supplied. If we are able to partially apply the function
+ <code class="computeroutput"><span class="identifier">add</span></code> above, we may pass only
+ the first argument. In doing so, the function does not have all the required
+ information it needs to perform its task to compute and return a result.
+ What it returns instead is another function, a lambda function. Unlike the
+ original <code class="computeroutput"><span class="identifier">add</span></code> function which
+ has an arity of 2, the resulting lambda function has an arity of 1. Why?
+ because we already supplied part of the input: <code class="computeroutput"><span class="number">2</span></code>
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/add2.png" alt="add2"></span>
+ </p>
+<p>
+ Now, when we shove in a number into our lambda function, it will return 2
+ plus whatever we pass in. The lambda function essentially remembers 1) the
+ original function, <code class="computeroutput"><span class="identifier">add</span></code>, and
+ 2) the partial input, 2. The figure below illustrates a case where we pass
+ 3 to our lambda function, which then returns 5:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/add2_call.png" alt="add2_call"></span>
+ </p>
+<p>
+ Obviously, partially applying the <code class="computeroutput"><span class="identifier">add</span></code>
+ function, as we see above, cannot be done directly in C++ where we are expected
+ to supply all the arguments that a function expects. That's where the Phoenix
+ library comes in. The library provides the facilities to do partial function
+ application. And even more, with Phoenix, these resulting functions won't
+ be black boxes anymore.
+ </p>
+<a name="phoenix.reference.basics.stl_and_higher_order_functions"></a><h3>
+<a name="id714630"></a>
+ <a class="link" href="basics.html#phoenix.reference.basics.stl_and_higher_order_functions">STL
+ and higher order functions</a>
+ </h3>
+<p>
+ So, what's all the fuss? What makes partial function application so useful?
+ Recall our original example in the <a class="link" href="../starter_kit/lazy_operators.html" title="Lazy Operators">previous
+ section</a>:
+ </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>
+<p>
+ The expression <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">%</span>
+ <span class="number">2</span> <span class="special">==</span> <span class="number">1</span></code> evaluates to a lambda function. <code class="computeroutput"><span class="identifier">arg1</span></code> is a placeholder for an argument to
+ be supplied later. Hence, since there's only one unsupplied argument, the
+ lambda function has an arity 1. It just so happens that <code class="computeroutput"><span class="identifier">find_if</span></code>
+ supplies the unsupplied argument as it loops from <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code> to <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ Higher order functions are functions which can take other functions as
+ arguments, and may also return functions as results. Higher order functions
+ are functions that are treated like any other objects and can be used as
+ arguments and return values from functions.
+ </p></td></tr>
+</table></div>
+<a name="phoenix.reference.basics.lazy_evaluation"></a><h3>
+<a name="id714833"></a>
+ <a class="link" href="basics.html#phoenix.reference.basics.lazy_evaluation">Lazy Evaluation</a>
+ </h3>
+<p>
+ In Phoenix, to put it more accurately, function evaluation has two stages:
+ </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Partial application
+ </li>
+<li class="listitem">
+ Final evaluation
+ </li>
+</ol></div>
+<p>
+ The first stage is handled by a set of generator functions. These are your
+ front ends (in the client's perspective). These generators create (through
+ partial function application), higher order functions that can be passed
+ on just like any other function pointer or function object. The second stage,
+ the actual function call, can be invoked or executed anytime in the future,
+ or not at all; hence <span class="emphasis"><em>"lazy"</em></span>.
+ </p>
+<p>
+ If we look more closely, the first step involves partial function application:
+ </p>
+<pre class="programlisting"><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span>
+</pre>
+<p>
+ The second step is the actual function invocation (done inside the <code class="computeroutput"><span class="identifier">find_if</span></code> function. These are the back-ends
+ (often, the final invocation is never actually seen by the client). In our
+ example, the <code class="computeroutput"><span class="identifier">find_if</span></code>, if
+ we take a look inside, we'll see something like:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Predicate</span><span class="special">&gt;</span>
+<span class="identifier">InputIterator</span>
+<span class="identifier">find_if</span><span class="special">(</span><span class="identifier">InputIterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">InputIterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">Predicate</span> <span class="identifier">pred</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">while</span> <span class="special">(</span><span class="identifier">first</span> <span class="special">!=</span> <span class="identifier">last</span> <span class="special">&amp;&amp;</span> <span class="special">!</span><span class="identifier">pred</span><span class="special">(*</span><span class="identifier">first</span><span class="special">))</span> <span class="comment">// &lt;--- The lambda function is called here
+</span> <span class="special">++</span><span class="identifier">first</span><span class="special">;</span> <span class="comment">// passing in *first
+</span> <span class="keyword">return</span> <span class="identifier">first</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ Again, typically, we, as clients, see only the first step. However, in this
+ document and in the examples and tests provided, don't be surprised to see
+ the first and second steps juxtaposed in order to illustrate the complete
+ semantics of Phoenix expressions. Examples:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">y</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span>
+
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</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">x</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// prints 1 or true
+</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">&lt;&lt;</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><h3>
+<a name="id715337"></a>
+ <a class="link" href="basics.html#phoenix.reference.basics.forwarding_function_problem">Forwarding
+ Function Problem</a>
+ </h3>
+<p>
+ Usually, we, as clients, write the call-back functions while libraries (such
+ as STL) provide the callee (e.g. <code class="computeroutput"><span class="identifier">find_if</span></code>).
+ In case the role is reversed, e.g. if you have to write an STL algorithm
+ that takes in a predicate, or develop a GUI library that accepts event handlers,
+ you have to be aware of a little known problem in C++ called the "<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm" target="_top">Forwarding
+ Function Problem</a>".
+ </p>
+<p>
+ Look again at the code above:
+ </p>
+<pre class="programlisting"><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">x</span><span class="special">)</span>
+</pre>
+<p>
+ Notice that, in the second-stage (the final evaluation), we used a variable
+ <code class="computeroutput"><span class="identifier">x</span></code>.
+ </p>
+<p>
+ In Phoenix we emulated perfect forwarding through Preprocessor Macros generating
+ code to allow const and non-const references.
+ </p>
+<p>
+ We generate these second-stage overloads for Phoenix expression up to <code class="computeroutput"><span class="identifier">PHOENIX_PERFECT_FORWARD_LIMIT</span></code>
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ You can set <code class="computeroutput"><span class="identifier">PHOENIX_PERFECT_FORWARD_LIMIT</span></code>,
+ the predefined maximum perfect forward arguments an actor can take. By
+ default, <code class="computeroutput"><span class="identifier">PHOENIX_PERFECT_FORWARDLIMIT</span></code>
+ is set to 3.
+ </p></td></tr>
+</table></div>
+<a name="phoenix.reference.basics.polymorphic_functions"></a><h3>
+<a name="id715475"></a>
+ <a class="link" href="basics.html#phoenix.reference.basics.polymorphic_functions">Polymorphic
+ Functions</a>
+ </h3>
+<p>
+ Unless otherwise noted, Phoenix generated functions are fully polymorphic.
+ For instance, the <code class="computeroutput"><span class="identifier">add</span></code> example
+ above can apply to integers, floating points, user defined complex numbers
+ or even strings. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">h</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">);</span>
+<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">w</span> <span class="special">=</span> <span class="string">" World"</span><span class="special">;</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">h</span><span class="special">,</span> <span class="identifier">w</span><span class="special">);</span>
+</pre>
+<p>
+ evaluates to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"Hello World"</span><span class="special">)</span></code>.
+ The observant reader might notice that this function call in fact takes in
+ heterogeneous arguments where <code class="computeroutput"><span class="identifier">arg1</span></code>
+ is of type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> and <code class="computeroutput"><span class="identifier">arg2</span></code>
+ is of type <code class="computeroutput"><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span></code>. <code class="computeroutput"><span class="identifier">add</span></code>
+ still works because the C++ standard library allows the expression <code class="computeroutput"><span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span></code>
+ where <code class="computeroutput"><span class="identifier">a</span></code> is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> is a <code class="computeroutput"><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span></code>.
+ </p>
+</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 &#169; 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="../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="organization.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,42 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Composite</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="actor.html" title="Actor">
+<link rel="next" href="core.html" title="Core">
+</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="actor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="core.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.composite"></a><a class="link" href="composite.html" title="Composite">Composite</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span><span class="special">&gt;</span> <span class="keyword">class</span> <span class="identifier">Actor</span><span class="special">,</span> <span class="keyword">typename</span><span class="special">...</span> <span class="identifier">A</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">compose</span>
+<span class="special">{</span>
+ <span class="identifier">result_type</span> <span class="keyword">const</span> <span class="keyword">operator</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">const</span><span class="special">;</span>
+<span class="special">};</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 &#169; 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="actor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="core.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/concepts.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Concepts</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="organization.html" title="Organization">
+<link rel="next" href="actor.html" title="Actor">
+</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="organization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="actor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.concepts"></a><a class="link" href="concepts.html" title="Concepts">Concepts</a>
+</h3></div></div></div>
+<p>
+ Concepts of this library ...
+ </p>
+</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 &#169; 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="organization.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="actor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Core</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="composite.html" title="Composite">
+<link rel="next" href="core/values.html" title="Values">
+</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="composite.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="core/values.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.core"></a><a class="link" href="core.html" title="Core">Core</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section"><a href="core/constant_references.html">Constant
+ References</a></span></dt>
+<dt><span class="section">Arguments</span></dt>
+<dt><span class="section">Nothing</span></dt>
+</dl></div>
+<p>
+ Actors are composed to create more complex actors in a tree-like hierarchy.
+ The primitives are atomic entities that are like the leaves in the tree.
+ Phoenix is extensible. New primitives can be added anytime. Right out of
+ the box, there are only a few primitives, these are all defined in the Core
+ module.
+ </p>
+<p>
+ This section shall deal with these preset primitives.
+ </p>
+</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 &#169; 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="composite.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="core/values.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/arguments.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/arguments.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Arguments</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="constant_references.html" title="Constant References">
+<link rel="next" href="nothing.html" title="Nothing">
+</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="constant_references.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="nothing.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.core.arguments"></a><a class="link" href="arguments.html" title="Arguments">Arguments</a>
+</h4></div></div></div></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 &#169; 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="constant_references.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="nothing.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/constant_references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/constant_references.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Constant References</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="references.html" title="References">
+<link rel="next" href="arguments.html" title="Arguments">
+</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="references.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="arguments.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.core.constant_references"></a><a class="link" href="constant_references.html" title="Constant References">Constant
+ References</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">reference</span><span class="special">,</span>
+ <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;&gt;</span></code> object. This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special">&lt;</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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>
+</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 &#169; 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="references.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="arguments.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/nothing.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/nothing.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Nothing</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="arguments.html" title="Arguments">
+<link rel="next" href="../modules.html" title="Modules">
+</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="arguments.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="../modules.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.core.nothing"></a><a class="link" href="nothing.html" title="Nothing">Nothing</a>
+</h4></div></div></div></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 &#169; 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="arguments.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="../modules.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/references.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>References</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="values.html" title="Values">
+<link rel="next" href="constant_references.html" title="Constant References">
+</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="values.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="constant_references.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.core.references"></a><a class="link" href="references.html" title="References">References</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
+</pre>
+<p>
+ Values are immutable constants. Attempting to modify a value will result
+ in a compile time error. When we want the function to modify the parameter,
+ we use a reference instead. For instance, imagine a lazy function <code class="computeroutput"><span class="identifier">add_assign</span></code>:
+ </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">add_assign</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">x</span> <span class="special">+=</span> <span class="identifier">y</span><span class="special">;</span> <span class="special">}</span> <span class="comment">// pseudo code
+</span></pre>
+<p>
+ Here, we want the first function argument, x, to be mutable. Obviously,
+ we cannot write:
+ </p>
+<pre class="programlisting"><span class="identifier">add_assign</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="comment">// error first argument is immutable
+</span></pre>
+<p>
+ In C++, we can pass in a reference to a variable as the first argument
+ in our example above. Yet, by default, the library forces arguments passed
+ to partially applied functions functions to be immutable values (see <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">&lt;</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&amp;&gt;</span>
+</pre>
+<p>
+ This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special">&lt;</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span></code>
+ above 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">&lt;</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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.core.references.evaluating_a_reference"></a><h3>
+<a name="id718153"></a>
+ <a class="link" href="references.html#phoenix.reference.core.references.evaluating_a_reference">Evaluating
+ a Reference</a>
+ </h3>
+<p>
+ References are actors. Hence, references can be evaluated. Such invocation
+ gives the references's identity. Example:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
+<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">s</span> <span class="special">=</span> <span class="string">"Hello World"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">)()</span> <span class="special">&lt;&lt;</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">s</span><span class="special">)();</span>
+</pre>
+<p>
+ prints out "3 Hello World"
+ </p>
+</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 &#169; 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="values.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="constant_references.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/values.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/values.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Values</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="../core.html" title="Core">
+<link rel="next" href="references.html" title="References">
+</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="../core.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="references.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.core.values"></a><a class="link" href="values.html" title="Values">Values</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<p>
+ Whenever we see a constant in a partially applied function, an
+ </p>
+<pre class="programlisting"><span class="identifier">actor</span><span class="special">&lt;</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span>
+</pre>
+<p>
+ (where T is the type of the constant) is automatically created for us.
+ For instance:
+ </p>
+<pre class="programlisting"><span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span>
+</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">&lt;</span><span class="identifier">value</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</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.core.values.evaluating_a_value"></a><h3>
+<a name="id717695"></a>
+ <a class="link" href="values.html#phoenix.reference.core.values.evaluating_a_value">Evaluating
+ a Value</a>
+ </h3>
+<p>
+ Like arguments, values are also actors. As such, values can be evaluated.
+ Invoking a value gives the value's identity. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)()</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"Hello World"</span><span class="special">)();</span>
+</pre>
+<p>
+ prints out "3 Hello World".
+ </p>
+</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 &#169; 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="../core.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../core.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="references.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Modules</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="core/nothing.html" title="Nothing">
+<link rel="next" href="modules/core.html" title="Core">
+</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="core/nothing.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="modules/core.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.modules"></a><a class="link" href="modules.html" title="Modules">Modules</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Core</span></dt>
+<dt><span class="section">Function</span></dt>
+<dt><span class="section">Operator</span></dt>
+<dt><span class="section">Statement</span></dt>
+<dt><span class="section">Object</span></dt>
+<dt><span class="section">Scope</span></dt>
+<dt><span class="section">Bind</span></dt>
+<dt><span class="section">Container</span></dt>
+<dt><span class="section">Algorithm</span></dt>
+</dl></div>
+</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 &#169; 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="core/nothing.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="modules/core.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/algorithm.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/algorithm.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Algorithm</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="container.html" title="Container">
+<link rel="next" href="../../advanced.html" title="Advanced">
+</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="container.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="../../advanced.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.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm">Algorithm</a>
+</h4></div></div></div></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 &#169; 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="container.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="../../advanced.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Bind</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="scope.html" title="Scope">
+<link rel="next" href="container.html" title="Container">
+</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="scope.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="container.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.bind"></a><a class="link" href="bind.html" title="Bind">Bind</a>
+</h4></div></div></div></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 &#169; 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="scope.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="container.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/container.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/container.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Container</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="bind.html" title="Bind">
+<link rel="next" href="algorithm.html" title="Algorithm">
+</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="bind.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="algorithm.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.container"></a><a class="link" href="container.html" title="Container">Container</a>
+</h4></div></div></div></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 &#169; 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="bind.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="algorithm.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Core</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="../modules.html" title="Modules">
+<link rel="next" href="function.html" title="Function">
+</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="../modules.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="function.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.core"></a><a class="link" href="core.html" title="Core">Core</a>
+</h4></div></div></div></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 &#169; 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="../modules.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="function.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Function</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="core.html" title="Core">
+<link rel="next" href="operator.html" title="Operator">
+</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="core.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.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.function"></a><a class="link" href="function.html" title="Function">Function</a>
+</h4></div></div></div></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 &#169; 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="core.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.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Object</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="statement.html" title="Statement">
+<link rel="next" href="scope.html" title="Scope">
+</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="statement.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="scope.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.object"></a><a class="link" href="object.html" title="Object">Object</a>
+</h4></div></div></div></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 &#169; 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="statement.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="scope.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.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Operator</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&#160;1.&#160;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">
+</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>
+</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>
+<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 &#169; 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="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>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Scope</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="object.html" title="Object">
+<link rel="next" href="bind.html" title="Bind">
+</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="object.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="bind.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.scope"></a><a class="link" href="scope.html" title="Scope">Scope</a>
+</h4></div></div></div></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 &#169; 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="object.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="bind.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Statement</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="operator.html" title="Operator">
+<link rel="next" href="object.html" title="Object">
+</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="object.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.statement"></a><a class="link" href="statement.html" title="Statement">Statement</a>
+</h4></div></div></div></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 &#169; 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="../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="object.html"><img src="../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,353 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Organization</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="basics.html" title="Basics">
+<link rel="next" href="concepts.html" title="Concepts">
+</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="basics.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="concepts.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.reference.organization"></a><a class="link" href="organization.html" title="Organization">Organization</a>
+</h3></div></div></div>
+<p>
+ Care and attention to detail was given, painstakingly, to the design and
+ implementation of Phoenix.
+ </p>
+<p>
+ The library is organized in four layers:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/organization.png" alt="organization"></span>
+ </p>
+<p>
+ The modules are orthogonal, with no cyclic dependencies. Lower layers do
+ not depend on higher layers. Modules in a layer do not depend on other modules
+ in the same layer. This means, for example, that Bind can be completely discarded
+ if it is not required; or one could perhaps take out Operator and Statement
+ and just use Function, which may be desireable in a pure FP application.
+ </p>
+<p>
+ The library has grown from the original Phoenix but still comprises only
+ header files. There are no object files to link against.
+ </p>
+<a name="phoenix.reference.organization.core"></a><h3>
+<a name="id715852"></a>
+ <a class="link" href="organization.html#phoenix.reference.organization.core">Core</a>
+ </h3>
+<p>
+ The lowest two layers comprise the core.
+ </p>
+<p>
+ The <code class="computeroutput"><span class="identifier">Actor</span></code> is the main concept
+ behind the library. Lazy functions are abstracted as actors. There are only
+ 2 kinds of actors:
+ </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Primitives
+ </li>
+<li class="listitem">
+ Composites
+ </li>
+</ol></div>
+<p>
+ Primitives provide the basic building blocks of functionality within Phoenix.
+ Composites are used to combine these primitives together to provide more
+ powerful functionality.
+ </p>
+<p>
+ Composites are composed of zero or more actors. Each actor in a composite
+ can again be another composite.
+ </p>
+<div class="table">
+<a name="id715902"></a><p class="title"><b>Table&#160;1.2.&#160;Modules</b></p>
+<div class="table-contents"><table class="table" summary="Modules">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Module
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Function
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy functions support (e.g. <code class="computeroutput"><span class="identifier">add</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Operator
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy operators support (e.g. <code class="computeroutput"><span class="special">+</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Statement
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy statments (e.g. <code class="computeroutput"><span class="identifier">if_</span></code>,
+ <code class="computeroutput"><span class="identifier">while_</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Object
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy casts (e.g. <code class="computeroutput"><span class="identifier">static_cast_</span></code>),
+ object creation destruction (e.g. <code class="computeroutput"><span class="identifier">new_</span></code>,
+ <code class="computeroutput"><span class="identifier">delete_</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Scope
+ </p>
+ </td>
+<td>
+ <p>
+ Support for scopes, local variables and lambda-lambda
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Bind
+ </p>
+ </td>
+<td>
+ <p>
+ Lazy functions from free functions, member functions or member
+ variables.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Container
+ </p>
+ </td>
+<td>
+ <p>
+ Set of predefined "lazy" functions that work on STL containers
+ and sequences (e.g. <code class="computeroutput"><span class="identifier">push_back</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Algorithm
+ </p>
+ </td>
+<td>
+ <p>
+ Set of predefined "lazy" versions of the STL algorithms
+ (e.g. <code class="computeroutput"><span class="identifier">find_if</span></code>).
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+ Each module is defined in a header file with the same name. For example,
+ the core module is defined in <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>.
+ </p>
+<div class="table">
+<a name="id716193"></a><p class="title"><b>Table&#160;1.3.&#160;Includes</b></p>
+<div class="table-contents"><table class="table" summary="Includes">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Module
+ </p>
+ </th>
+<th>
+ <p>
+ File
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Core
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Function
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Operator
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Statement
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Object
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Scope
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">scope</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Bind
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Container
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Algorithm
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Finer grained include files are available per feature;
+ see the succeeding sections.
+ </p>
+</div>
+</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 &#169; 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="basics.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="concepts.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/references.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>References</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="acknowledgement.html" title="Acknowledgement">
+</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="acknowledgement.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.references"></a><a class="link" href="references.html" title="References">References</a>
+</h2></div></div></div>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Why Functional Programming Matters, John Hughes, 1989. Available online at
+ http://www.math.chalmers.se/~rjmh/Papers/whyfp.html.
+ </li>
+<li class="listitem">
+ Boost.Lambda library, Jaakko Jarvi, 1999-2004 Jaakko Jarvi, Gary Powell.
+ Available online at http://www.boost.org/libs/lambda/.
+ </li>
+<li class="listitem">
+ Functional Programming in C++ using the FC++ Library: a short article introducing
+ FC++, Brian McNamara and Yannis Smaragdakis, August 2003. Available online
+ at http://www.cc.gatech.edu/~yannis/fc++/.
+ </li>
+<li class="listitem">
+ Side-effects and partial function application in C++, Jaakko Jarvi and Gary
+ Powell, 2001. Available online at http://osl.iu.edu/~jajarvi/publications/papers/mpool01.pdf.
+ </li>
+<li class="listitem">
+ Spirit Version 1.8.1, Joel de Guzman, Nov 2004. Available online at http://www.boost.org/libs/spirit/.
+ </li>
+<li class="listitem">
+ The Boost MPL Library, Aleksey Gurtovoy and David Abrahams, 2002-2004. Available
+ online at http://www.boost.org/libs/mpl/.
+ </li>
+<li class="listitem">
+ Generic Programming Redesign of Patterns, Proceedings of the 5th European
+ Conference on Pattern Languages of Programs, (EuroPLoP'2000) Irsee, Germany,
+ July 2000. Available online at http://www.coldewey.com/europlop2000/papers/geraud%2Bduret.zip.
+ </li>
+<li class="listitem">
+ A Gentle Introduction to Haskell, Paul Hudak, John Peterson and Joseph Fasel,
+ 1999. Available online at http://www.haskell.org/tutorial/.
+ </li>
+<li class="listitem">
+ Large scale software design, John Lackos, ISBN 0201633620, Addison-Wesley,
+ July 1996.
+ </li>
+<li class="listitem">
+ Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma,
+ Richard Helm, Ralph Jhonson, and John Vlissides, Addison-Wesley, 1995.
+ </li>
+<li class="listitem">
+ The Forwarding Problem: Arguments Peter Dimov, Howard E. Hinnant, Dave Abrahams,
+ September 09, 2002. Available online: <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm" target="_top">Forwarding
+ Function Problem</a>.
+ </li>
+</ol></div>
+</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 &#169; 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="acknowledgement.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Starter Kit</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="introduction.html" title="Introduction">
+<link rel="next" href="starter_kit/values.html" title="Values">
+</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="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="starter_kit/values.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.starter_kit"></a><a class="link" href="starter_kit.html" title="Starter Kit">Starter Kit</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section">Arguments</span></dt>
+<dt><span class="section">Composites</span></dt>
+<dt><span class="section">Lazy Operators</span></dt>
+<dt><span class="section">Lazy Statements</span></dt>
+<dt><span class="section"><a href="starter_kit/construct__new__delete__casts.html">Construct,
+ New, Delete, Casts</a></span></dt>
+<dt><span class="section">Lazy Functions</span></dt>
+<dt><span class="section">More</span></dt>
+</dl></div>
+<p>
+ Most "quick starts" only get you a few blocks from where you are.
+ From there, you are on your own. Yet, typically, you'd want to get to the next
+ city. This starter kit shall be as minimal as possible, yet packed as much
+ power as possible.
+ </p>
+<p>
+ So you are busy and always on the go. You do not wish to spend a lot of time
+ studying the library. You wish to be spared the details for later when you
+ need it. For now, all you need to do is to get up to speed as quickly as possible
+ and start using the library. If this is the case, this is the right place to
+ start.
+ </p>
+<p>
+ This chapter is by no means a thorough discourse of the library. For more information
+ on Phoenix, please take some time to read the rest of the User's Guide. Yet,
+ if you just want to use the library quickly, now, this chapter will probably
+ suffice. Rather than taking you to the details of the library, we shall try
+ to provide you with annotated exemplars instead. Hopefully, this will get you
+ into high gear quickly.
+ </p>
+<a name="phoenix.starter_kit.functors_everywhere"></a><h3>
+<a name="id711290"></a>
+ <a class="link" href="starter_kit.html#phoenix.starter_kit.functors_everywhere">Functors everywhere</a>
+ </h3>
+<p>
+ Phoenix is built on function objects (functors). The functor is the main building
+ block. We compose functors to build more complex functors... to build more
+ complex functors... and so on. Almost everything is a functor.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ Functors are so ubiquitous in Phoenix that, in the manual, the words <span class="emphasis"><em>"functor"</em></span>
+ and <span class="emphasis"><em>"function"</em></span> are used interchangeably.
+ </p></td></tr>
+</table></div>
+</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 &#169; 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="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="starter_kit/values.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/arguments.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/arguments.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Arguments</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="references.html" title="References">
+<link rel="next" href="composites.html" title="Composites">
+</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="references.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="composites.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.arguments"></a><a class="link" href="arguments.html" title="Arguments">Arguments</a>
+</h3></div></div></div>
+<p>
+ Arguments are also functions? You bet!
+ </p>
+<p>
+ Until now, we have been dealing with expressions returning a nullary function.
+ Arguments, on the other hand, evaluate to an N-ary function. An argument
+ represents the Nth argument. There are a few predefined arguments arg1, arg2,
+ arg3, arg4 and so on (and it's BLL
+ counterparts: _1, _2, _3, _4 and so on). Examples:
+ </p>
+<pre class="programlisting"><span class="identifier">arg1</span> <span class="comment">// one-or-more argument function that returns its first argument
+</span><span class="identifier">arg2</span> <span class="comment">// two-or-more argument function that returns its second argument
+</span><span class="identifier">arg3</span> <span class="comment">// three-or-more argument function that returns its third argument
+</span></pre>
+<p>
+ <code class="computeroutput"><span class="identifier">argN</span></code> returns the Nth argument.
+ Examples:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
+<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">s</span> <span class="special">=</span> <span class="string">"Hello World"</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">arg1</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// prints 3
+</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">arg2</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">s</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// prints "Hello World"
+</span></pre>
+<p>
+ (See arguments.cpp)
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Learn more about arguments
+ </p>
+</div>
+</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 &#169; 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="references.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="composites.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/composites.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,46 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Composites</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="arguments.html" title="Arguments">
+<link rel="next" href="lazy_operators.html" title="Lazy 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="arguments.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="lazy_operators.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.composites"></a><a class="link" href="composites.html" title="Composites">Composites</a>
+</h3></div></div></div>
+<p>
+ What we have seen so far, are what are called <span class="bold"><strong>primitives</strong></span>.
+ You can think of primitives (such as values, references and arguments) as
+ atoms.
+ </p>
+<p>
+ Things start to get interesting when we start <span class="emphasis"><em>composing</em></span>
+ primitives to form <span class="bold"><strong>composites</strong></span>. The composites
+ can, in turn, be composed to form even more complex composites.
+ </p>
+</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 &#169; 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="arguments.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="lazy_operators.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/construct__new__delete__casts.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/construct__new__delete__casts.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Construct, New, Delete, Casts</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="lazy_statements.html" title="Lazy Statements">
+<link rel="next" href="lazy_functions.html" title="Lazy Functions">
+</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="lazy_statements.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="lazy_functions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.construct__new__delete__casts"></a><a class="link" href="construct__new__delete__casts.html" title="Construct, New, Delete, Casts">Construct,
+ New, Delete, Casts</a>
+</h3></div></div></div>
+<p>
+ You'll probably want to work with objects. There are lazy versions of constructor
+ calls, <code class="computeroutput"><span class="keyword">new</span></code>, <code class="computeroutput"><span class="keyword">delete</span></code>
+ and the suite of C++ casts. Examples:
+ </p>
+<pre class="programlisting"><span class="identifier">construct</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)</span> <span class="comment">// constructs a std::string from arg1, arg2
+</span><span class="identifier">new_</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)</span> <span class="comment">// makes a new std::string from arg1, arg2
+</span><span class="identifier">delete_</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// deletes arg1 (assumed to be a pointer)
+</span><span class="identifier">static_cast_</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;(</span><span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// static_cast's arg1 to an int*
+</span></pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ Take note that, by convention, names that conflict with C++ reserved words
+ are appended with a single trailing underscore <code class="computeroutput"><span class="char">'_'</span></code>
+ </p></td></tr>
+</table></div>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Learn more about this
+ </p>
+</div>
+</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 &#169; 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="lazy_statements.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="lazy_functions.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Lazy Functions</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="construct__new__delete__casts.html" title="Construct, New, Delete, Casts">
+<link rel="next" href="more.html" title="More">
+</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="construct__new__delete__casts.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="more.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.lazy_functions"></a><a class="link" href="lazy_functions.html" title="Lazy Functions">Lazy Functions</a>
+</h3></div></div></div>
+<p>
+ As you write more lambda functions, you'll notice certain patterns that you
+ wish to refactor as reusable functions. When you reach that point, you'll
+ wish that ordinary functions can co-exist with phoenix functions. Unfortunately,
+ the <span class="emphasis"><em>immediate</em></span> nature of plain C++ functions make them
+ incompatible.
+ </p>
+<p>
+ Lazy functions are your friends. The library provides a facility to make
+ lazy functions. The code below is a rewrite of the <code class="computeroutput"><span class="identifier">is_odd</span></code>
+ function using the facility:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">is_odd_impl</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Arg</span><span class="special">&gt;</span>
+ <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Arg</span> <span class="identifier">arg1</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</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="special">};</span>
+
+<span class="identifier">function</span><span class="special">&lt;</span><span class="identifier">is_odd_impl</span><span class="special">&gt;</span> <span class="identifier">is_odd</span><span class="special">;</span>
+</pre>
+<a name="phoenix.starter_kit.lazy_functions.things_to_note_"></a><h3>
+<a name="id713961"></a>
+ <a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.things_to_note_">Things
+ to note:</a>
+ </h3>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Result type deduction is implemented with the help of the result_of protocol.
+ For more information see <a href="http://www.boost.org/doc/libs/1_43_0/libs/utility/utility.htm#result_of" target="_top">Boost.Result
+ Of</a>
+</li>
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">is_odd_impl</span></code> implements
+ the function.
+ </li>
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">is_odd</span></code>, an instance of
+ <code class="computeroutput"><span class="identifier">function</span><span class="special">&lt;</span><span class="identifier">is_odd_impl</span><span class="special">&gt;</span></code>,
+ is the lazy function.
+ </li>
+</ul></div>
+<p>
+ Now, <code class="computeroutput"><span class="identifier">is_odd</span></code> is a truly lazy
+ function that we can use in conjunction with the rest of phoenix. Example:
+ </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">is_odd</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">));</span>
+</pre>
+<p>
+ (See function.cpp)
+ </p>
+<a name="phoenix.starter_kit.lazy_functions.predefined_lazy_functions"></a><h3>
+<a name="id714121"></a>
+ <a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.predefined_lazy_functions">Predefined
+ Lazy Functions</a>
+ </h3>
+<p>
+ The library is chock full of STL savvy, predefined lazy functions covering
+ the whole of the STL containers, iterators and algorithms. For example, there
+ are lazy versions of container related operations such as assign, at, back,
+ begin, pop_back, pop_front, push_back, push_front, etc. (See ).
+ </p>
+</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 &#169; 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="construct__new__delete__casts.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="more.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,135 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Lazy 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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="composites.html" title="Composites">
+<link rel="next" href="lazy_statements.html" title="Lazy Statements">
+</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="composites.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="lazy_statements.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.lazy_operators"></a><a class="link" href="lazy_operators.html" title="Lazy Operators">Lazy Operators</a>
+</h3></div></div></div>
+<p>
+ You can use the usual set of operators to form composites. Examples:
+ </p>
+<pre class="programlisting"><span class="identifier">arg1</span> <span class="special">*</span> <span class="identifier">arg1</span>
+<span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">arg1</span> <span class="special">+</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">z</span><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="number">3</span> <span class="special">*</span> <span class="identifier">arg3</span><span class="special">)</span>
+<span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">arg1</span><span class="special">[</span><span class="identifier">arg2</span><span class="special">]</span> <span class="comment">// assuming arg1 is indexable and arg2 is a valid index
+</span></pre>
+<p>
+ Note the expression: <code class="computeroutput"><span class="number">3</span> <span class="special">*</span>
+ <span class="identifier">arg3</span></code>. This expression is actually
+ a short-hand equivalent to: <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span>
+ <span class="special">*</span> <span class="identifier">arg3</span></code>.
+ In most cases, like above, you can get away with it. But in some cases, you
+ will have to explicitly wrap your values in <code class="computeroutput"><span class="identifier">val</span></code>.
+ Rules of thumb:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ In a binary expression (e.g. <code class="computeroutput"><span class="number">3</span> <span class="special">*</span> <span class="identifier">arg3</span></code>),
+ at least one of the operands must be a phoenix primitive or composite.
+ </li>
+<li class="listitem">
+ In a unary expression (e.g. <code class="computeroutput"><span class="identifier">arg1</span><span class="special">++</span></code>), the single operand must be a phoenix
+ primitive or composite.
+ </li>
+</ul></div>
+<p>
+ If these basic rules are not followed, the result is either an error, or
+ is immediately evaluated. Some examples:
+ </p>
+<pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="number">123</span> <span class="comment">// lazy
+</span><span class="identifier">x</span> <span class="special">=</span> <span class="number">123</span> <span class="comment">// immediate
+</span>
+<span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)[</span><span class="number">0</span><span class="special">]</span> <span class="comment">// lazy
+</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="comment">// immediate
+</span>
+<span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</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="comment">// lazy
+</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)[</span><span class="identifier">i</span><span class="special">]</span> <span class="comment">// lazy (equivalent to ref(x)[val(i)])
+</span><span class="identifier">x</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="comment">// illegal (x is not a phoenix primitive or composite)
+</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</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="comment">// illegal (x is not a phoenix primitive or composite)
+</span></pre>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Learn more about operators
+ </p>
+</div>
+<a name="phoenix.starter_kit.lazy_operators.first_practical_example"></a><h3>
+<a name="id712950"></a>
+ <a class="link" href="lazy_operators.html#phoenix.starter_kit.lazy_operators.first_practical_example">First
+ Practical Example</a>
+ </h3>
+<p>
+ We've covered enough ground to present a real world example. We want to find
+ the first odd number in an STL container. Normally we use a functor (function
+ object) or a function pointer and pass that in to STL's <code class="computeroutput"><span class="identifier">find_if</span></code>
+ generic function:
+ </p>
+<p>
+ Write a function:
+ </p>
+<pre class="programlisting"><span class="keyword">bool</span>
+<span class="identifier">is_odd</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">arg1</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</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>
+</pre>
+<p>
+ Pass a pointer to the function to STL's <code class="computeroutput"><span class="identifier">find_if</span></code>
+ algorithm:
+ </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="special">&amp;</span><span class="identifier">is_odd</span><span class="special">)</span>
+</pre>
+<p>
+ Using Phoenix, the same can be achieved directly with a one-liner:
+ </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>
+<p>
+ The expression <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">%</span>
+ <span class="number">2</span> <span class="special">==</span> <span class="number">1</span></code> automagically creates a functor with the
+ expected behavior. In FP, this unnamed function is called a lambda function.
+ Unlike the function pointer version, which is monomorphic (expects and works
+ only with a fixed type int argument), the Phoenix version is fully polymorphic
+ and works with any container (of ints, of longs, of bignum, etc.) as long
+ as its elements can handle the <code class="computeroutput"><span class="identifier">arg1</span>
+ <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span></code> expression.
+ </p>
+<p>
+ (See find_if.cpp)
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> ...<span class="bold"><strong>That's it, we're done</strong></span>.
+ Well if you wish to know a little bit more, read on...
+ </p>
+</div>
+</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 &#169; 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="composites.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="lazy_statements.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_statements.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_statements.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Lazy Statements</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="lazy_operators.html" title="Lazy Operators">
+<link rel="next" href="construct__new__delete__casts.html" title="Construct, New, Delete, Casts">
+</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="lazy_operators.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="construct__new__delete__casts.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.lazy_statements"></a><a class="link" href="lazy_statements.html" title="Lazy Statements">Lazy Statements</a>
+</h3></div></div></div>
+<p>
+ Lazy statements? Sure. There are lazy versions of the C++ statements we all
+ know and love. For example:
+ </p>
+<pre class="programlisting"><span class="identifier">if_</span><span class="special">(</span><span class="identifier">arg1</span> <span class="special">&gt;</span> <span class="number">5</span><span class="special">)</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">arg1</span>
+</pre>
+<p>
+ Say, for example, we wish to print all the elements that are greater than
+ 5 (separated by a comma) in a vector. Here's how we write it:
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">v</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">v</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">&gt;</span> <span class="number">5</span><span class="special">)</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">arg1</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span>
+ <span class="special">]</span>
+<span class="special">);</span>
+</pre>
+<p>
+ (See if.cpp)
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Learn more about statements
+ </p>
+</div>
+</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 &#169; 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="lazy_operators.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="construct__new__delete__casts.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/more.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/more.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>More</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="lazy_functions.html" title="Lazy Functions">
+<link rel="next" href="../reference.html" title="Reference">
+</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="lazy_functions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="../reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.more"></a><a class="link" href="more.html" title="More">More</a>
+</h3></div></div></div>
+<p>
+ As mentioned earlier, this chapter is not a thorough discourse of the library.
+ It is meant only to cover enough ground to get you into high gear as quickly
+ as possible. Some advanced stuff is not discussed here (e.g. ); nor are features
+ that provide alternative (short-hand) ways to do the same things (e.g. vs.
+ Lazy Functions).
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> ...<span class="bold"><strong>If you still wish to learn
+ more, the read on...</strong></span>
+ </p>
+</div>
+</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 &#169; 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="lazy_functions.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="../reference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/references.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>References</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="values.html" title="Values">
+<link rel="next" href="arguments.html" title="Arguments">
+</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="values.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="arguments.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.references"></a><a class="link" href="references.html" title="References">References</a>
+</h3></div></div></div>
+<p>
+ References are functions. They hold a reference to a value stored somehere.
+ For example, given:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
+<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">s</span> <span class="special">=</span> <span class="string">"Hello World"</span><span class="special">;</span>
+</pre>
+<p>
+ we create <code class="computeroutput"><span class="identifier">references</span></code> to
+ <code class="computeroutput"><span class="identifier">i</span></code> and <code class="computeroutput"><span class="identifier">s</span></code>
+ this way:
+ </p>
+<pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span>
+<span class="identifier">ref</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span>
+</pre>
+<p>
+ Like <code class="computeroutput"><span class="identifier">val</span></code>, the expressions
+ above evaluates to a nullary function; the first one returning an <code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code>,
+ and the second one returning a <code class="computeroutput"><span class="keyword">char</span>
+ <span class="keyword">const</span><span class="special">*&amp;</span></code>.
+ </p>
+<p>
+ (See references.cpp)
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Learn more about references
+ </p>
+</div>
+</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 &#169; 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="values.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="arguments.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Values</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../starter_kit.html" title="Starter Kit">
+<link rel="prev" href="../starter_kit.html" title="Starter Kit">
+<link rel="next" href="references.html" title="References">
+</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="../starter_kit.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="references.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.starter_kit.values"></a><a class="link" href="values.html" title="Values">Values</a>
+</h3></div></div></div>
+<p>
+ Values are functions! Examples:
+ </p>
+<pre class="programlisting"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span>
+<span class="identifier">val</span><span class="special">(</span><span class="string">"Hello, World"</span><span class="special">)</span>
+</pre>
+<p>
+ The first evaluates to a nullary function (a function taking no arguments)
+ that returns an <code class="computeroutput"><span class="keyword">int</span></code>, <code class="computeroutput"><span class="number">3</span></code>. The second evaluates to a nullary function
+ that returns a <code class="computeroutput"><span class="keyword">char</span> <span class="keyword">const</span><span class="special">(&amp;)[</span><span class="number">13</span><span class="special">]</span></code>, <code class="computeroutput"><span class="string">"Hello,
+ World"</span></code>.
+ </p>
+<a name="phoenix.starter_kit.values.lazy_evaluation"></a><h3>
+<a name="id711432"></a>
+ <a class="link" href="values.html#phoenix.starter_kit.values.lazy_evaluation">Lazy Evaluation</a>
+ </h3>
+<p>
+ Confused? <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span></code> is a unary
+ function, you say? Yes it is. However, read carefully: <span class="emphasis"><em>"evaluates
+ to a nullary function"</em></span>. <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span></code>
+ evaluates to (returns) a nullary function. Aha! <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span></code>
+ returns a function! So, since <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span></code>
+ returns a function, you can invoke it. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ (See values.cpp)
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../images/tip.png" alt="tip"></span> Learn more about values
+ </p>
+</div>
+<p>
+ The second function call (the one with no arguments) calls the nullary function
+ which then returns <code class="computeroutput"><span class="number">3</span></code>. The need
+ for a second function call is the reason why the function is said to be
+ <span class="bold"><strong><span class="emphasis"><em>Lazily Evaluated</em></span></strong></span>. The
+ first call doesn't do anything. You need a second call to finally evaluate
+ the thing. The first call lazily evaluates the function; i.e. doesn't do
+ anything and defers the evaluation for later.
+ </p>
+<a name="phoenix.starter_kit.values.callbacks"></a><h3>
+<a name="id711636"></a>
+ <a class="link" href="values.html#phoenix.starter_kit.values.callbacks">Callbacks</a>
+ </h3>
+<p>
+ It may not be immediately apparent how lazy evaluation can be useful by just
+ looking at the example above. Putting the first and second function call
+ in a single line is really not very useful. However, thinking of <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">)</span></code> as a callback function (and in most cases
+ they are actually used that way), will make it clear. Example:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">print</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span>
+<span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="identifier">print</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">3</span><span class="special">));</span>
+ <span class="identifier">print</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="string">"Hello World"</span><span class="special">));</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ (See callback.cpp)
+ </p>
+</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 &#169; 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="../starter_kit.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../starter_kit.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="references.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/wrap_up.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/wrap_up.html 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Wrap Up</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&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="notes/performance/runtime.html" title="Runtime">
+<link rel="next" href="acknowledgement.html" title="Acknowledgement">
+</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="notes/performance/runtime.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="acknowledgement.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="phoenix.wrap_up"></a><a class="link" href="wrap_up.html" title="Wrap Up">Wrap Up</a>
+</h2></div></div></div>
+<p>
+ Sooner or later more FP techniques become standard practice as people find
+ the true value of this programming discipline outside the academe and into
+ the mainstream. In as much as structured programming of the 70s and object
+ oriented programming in the 80s and generic programming in the 90s shaped our
+ thoughts towards a more robust sense of software engineering, FP will certainly
+ be a paradigm that will catapult us towards more powerful software design and
+ engineering onward into the new millenium.
+ </p>
+<p>
+ Let me quote Doug Gregor of Boost.org. About functional style programming libraries:
+ </p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ <span class="emphasis"><em>They're gaining acceptance, but are somewhat stunted by the ubiquitousness
+ of broken compilers. The C++ community is moving deeper into the so-called
+ "STL- style" programming paradigm, which brings many aspects
+ of functional programming into the fold. Look at, for instance, the Spirit
+ parser to see how such function objects can be used to build Yacc-like
+ grammars with semantic actions that can build abstract syntax trees on
+ the fly. This type of functional composition is gaining momentum.</em></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<p>
+ Indeed. Phoenix is another attempt to introduce more FP techniques into the
+ mainstream. Not only is it a tool that will make life easier for the programmer.
+ In its own right, the actual design of the library itself is a model of true
+ C++ FP in action. The library is designed and structured in a strict but clear
+ and well mannered FP sense. By all means, use the library as a tool. But for
+ those who want to learn more about FP in C++, don't stop there, I invite you
+ to take a closer look at the design of the library itself.
+ </p>
+<p>
+ So there you have it. Have fun! See you in the FP world.
+ </p>
+</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 &#169; 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="notes/performance/runtime.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="acknowledgement.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -1,3 +1,54 @@
 index.html
 phoenix/introduction.html
-phoenix/actors.html
+phoenix/starter_kit.html
+phoenix/starter_kit/values.html
+phoenix/starter_kit/references.html
+phoenix/starter_kit/arguments.html
+phoenix/starter_kit/composites.html
+phoenix/starter_kit/lazy_operators.html
+phoenix/starter_kit/lazy_statements.html
+phoenix/starter_kit/construct__new__delete__casts.html
+phoenix/starter_kit/lazy_functions.html
+phoenix/starter_kit/more.html
+phoenix/reference.html
+phoenix/reference/basics.html
+phoenix/reference/organization.html
+phoenix/reference/concepts.html
+phoenix/reference/actor.html
+phoenix/reference/composite.html
+phoenix/reference/core.html
+phoenix/reference/core/values.html
+phoenix/reference/core/references.html
+phoenix/reference/core/constant_references.html
+phoenix/reference/core/arguments.html
+phoenix/reference/core/nothing.html
+phoenix/reference/modules.html
+phoenix/reference/modules/core.html
+phoenix/reference/modules/function.html
+phoenix/reference/modules/operator.html
+phoenix/reference/modules/statement.html
+phoenix/reference/modules/object.html
+phoenix/reference/modules/scope.html
+phoenix/reference/modules/bind.html
+phoenix/reference/modules/container.html
+phoenix/reference/modules/algorithm.html
+phoenix/advanced.html
+phoenix/advanced/phoenix_in_detail.html
+phoenix/advanced/phoenix_in_detail/composites.html
+phoenix/advanced/phoenix_in_detail/ast_structure.html
+phoenix/advanced/extending.html
+phoenix/advanced/transformations.html
+phoenix/notes.html
+phoenix/notes/portability__similarities_and_differences.html
+phoenix/notes/portability__similarities_and_differences/boost_bind.html
+phoenix/notes/portability__similarities_and_differences/std__bind.html
+phoenix/notes/portability__similarities_and_differences/boost_function.html
+phoenix/notes/portability__similarities_and_differences/std__function.html
+phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html
+phoenix/notes/porting_from_phoenix_2_0.html
+phoenix/notes/performance.html
+phoenix/notes/performance/compiletime.html
+phoenix/notes/performance/runtime.html
+phoenix/wrap_up.html
+phoenix/acknowledgement.html
+phoenix/references.html

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,38 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Notes]
+
+[section Portability, Similarities and Differences]
+
+[section Boost.Bind]
+[endsect]
+
+[section std::bind]
+[endsect]
+
+[section Boost.Function]
+[endsect]
+
+[section std::function]
+[endsect]
+
+[section C++0x Lambdas]
+[endsect]
+
+Notes on portability with all the other existing FP libraries
+
+[endsect]
+
+[include notes/porting_from_2_0.qbk]
+
+[include notes/performance.qbk]
+
+[/include notes/journey.qbk]
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/performance.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/performance.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,19 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Performance]
+
+This section will contain some obversations and notes about performance of the current implementation
+
+[section Compiletime]
+[endsect]
+
+[section Runtime]
+[endsect]
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/porting_from_2_0.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes/porting_from_2_0.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,13 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Porting from Phoenix 2.0]
+
+This section will be about porting existing code phoenix code to this new port
+
+[endsect]

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -36,8 +36,17 @@
 [def __forwarding__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm Forwarding Function Problem]]
 [def __boost_mpl__ [@http://boost.org/libs/mpl/doc/index.html Boost.MPL]]
 [def __boost_range__ [@http://boost.org/libs/range/index.html Boost.Range]]
+[def __boost_result_of__ [@http://www.boost.org/doc/libs/1_43_0/libs/utility/utility.htm#result_of Boost.Result Of]]
 
 [include preface.qbk]
 [include introduction.qbk]
-[include actors.qbk]
+[include starter_kit.qbk]
+[include reference.qbk]
+
+[/include actors.qbk]
+[include advanced.qbk]
+[include notes.qbk]
+[include wrap_up.qbk]
+[include acknowledgement.qbk]
+[include references.qbk]
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/preface.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/preface.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/preface.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -1,5 +1,14 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
 
-[section Preface]
+[/section Preface]
+[h1 Preface]
 
 [:['Functional programming is so called because a program consists entirely of
 functions. The main program itself is written as a function which receives the
@@ -53,6 +62,8 @@
                                      information.]]
 ]
 
+[blurb __note__ `using namespace boost::phoenix` is assumed if nothing else is explicitly noted]
+
 [h2 [*/...To my dear daughter, Phoenix/]]
 
-[endsect]
+[/endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,55 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Reference]
+
+[include reference/basics.qbk]
+[include reference/organisation.qbk]
+
+[section Concepts]
+
+Concepts of this library ...
+
+[endsect]
+
+[include reference/actor.qbk]
+[include reference/composite.qbk]
+[include reference/core.qbk]
+
+[section Modules]
+[section Core]
+[endsect]
+
+[section Function]
+[endsect]
+
+[section Operator]
+[endsect]
+
+[section Statement]
+[endsect]
+
+[section Object]
+[endsect]
+
+[section Scope]
+[endsect]
+
+[section Bind]
+[endsect]
+
+[section Container]
+[endsect]
+
+[section Algorithm]
+[endsect]
+[endsect]
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/actor.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/actor.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,48 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Actor]
+
+The `Actor` is the main concept behind the library. Actors are function objects.
+An actor can accept 0 to `PHOENIX_LIMIT` arguments.
+
+[note You can set `PHOENIX_LIMIT`, the predefined maximum arity an
+actor can take. By default, `PHOENIX_LIMIT` is set to 10.]
+
+Phoenix supplies an `actor` class template whose specializations
+model the `Actor` concept. `actor` has one template parameter, `Expr`,
+that supplies the underlying expression to evaluate.
+
+ template <typename Expr>
+ struct actor
+ {
+ return_type
+ operator()() const;
+
+ template <typename T0>
+ return_type
+ operator()(T0& _0) const;
+
+ template <typename T0, typename T1>
+ return_type
+ operator()(T0& _0, T1& _1) const;
+
+ //...
+ };
+
+The actor class accepts the arguments through a set of function call operators
+for 0 to `PHOENIX_LIMIT` arities (Don't worry about the details, for now. Note, for example,
+that we skimp over the details regarding `return_type`). The arguments
+are then forwarded to the actor's `Expr` for evaluation.
+
+[h2 TODO]
+add some notes about the extension possibilities
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/basics.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,177 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Basics]
+
+[def __constant_n__ /n/]
+[def __argument_n__ a/n/]
+
+Almost everything is a function in the Phoenix library that can be evaluated as
+`f(a1, a2, ..., __argument_n__)`, where __constant_n__ is the function's arity, or number of arguments that the
+function expects. Operators are also functions. For example, `a + b` is just a
+function with arity == 2 (or binary). `a + b` is the same as `add(a, b)`, `a + b
++ c` is the same as `add(add(a, b), c)`.
+
+[note Amusingly, functions may even return functions. We shall see
+what this means in a short while.]
+
+[h2 Partial Function Application]
+
+Think of a function as a black box. You pass arguments and it returns something
+back. The figure below depicts the typical scenario.
+
+[$images/fbox.png]
+
+A fully evaluated function is one in which all the arguments are given. All
+functions in plain C++ are fully evaluated. When you call the `sin(x)` function,
+you have to pass a number x. The function will return a result in return: the
+sin of x. When you call the `add(x, y)` function, you have to pass two numbers x
+and y. The function will return the sum of the two numbers. The figure below is
+a fully evaluated `add` function.
+
+[$images/adder.png]
+
+A partially applied function, on the other hand, is one in which not all the
+arguments are supplied. If we are able to partially apply the function `add`
+above, we may pass only the first argument. In doing so, the function does not
+have all the required information it needs to perform its task to compute and
+return a result. What it returns instead is another function, a lambda function.
+Unlike the original `add` function which has an arity of 2, the resulting lambda
+function has an arity of 1. Why? because we already supplied part of the input:
+`2`
+
+[$images/add2.png]
+
+Now, when we shove in a number into our lambda function, it will return 2 plus
+whatever we pass in. The lambda function essentially remembers 1) the original
+function, `add`, and 2) the partial input, 2. The figure below illustrates a
+case where we pass 3 to our lambda function, which then returns 5:
+
+[$images/add2_call.png]
+
+Obviously, partially applying the `add` function, as we see above, cannot be
+done directly in C++ where we are expected to supply all the arguments that a
+function expects. That's where the Phoenix library comes in. The library
+provides the facilities to do partial function application.
+And even more, with Phoenix, these resulting functions won't be black boxes
+anymore.
+
+[h2 STL and higher order functions]
+
+So, what's all the fuss? What makes partial function application so useful?
+Recall our original example in the [link phoenix.starter_kit.lazy_operators previous section]:
+
+ find_if(c.begin(), c.end(), arg1 % 2 == 1)
+
+The expression `arg1 % 2 == 1` evaluates to a lambda function. `arg1` is a placeholder
+for an argument to be supplied later. Hence, since there's only one unsupplied argument, the
+lambda function has an arity 1. It just so happens that `find_if` supplies the
+unsupplied argument as it loops from `c.begin()` to `c.end()`.
+
+[note Higher order functions are functions which can take other
+functions as arguments, and may also return functions as results. Higher order
+functions are functions that are treated like any other objects and can be used as
+arguments and return values from functions.]
+
+[h2 Lazy Evaluation]
+
+In Phoenix, to put it more accurately, function evaluation has two stages:
+
+# Partial application
+# Final evaluation
+
+The first stage is handled by a set of generator functions. These are your front
+ends (in the client's perspective). These generators create (through partial
+function application), higher order functions that can be passed on just like
+any other function pointer or function object. The second stage, the actual
+function call, can be invoked or executed anytime in the future, or not at all;
+hence /"lazy"/.
+
+If we look more closely, the first step involves partial function application:
+
+ arg1 % 2 == 1
+
+The second step is the actual function invocation (done inside the `find_if`
+function. These are the back-ends (often, the final invocation is never actually
+seen by the client). In our example, the `find_if`, if we take a look inside,
+we'll see something like:
+
+ template <class InputIterator, class Predicate>
+ InputIterator
+ find_if(InputIterator first, InputIterator last, Predicate pred)
+ {
+ while (first != last && !pred(*first)) // <--- The lambda function is called here
+ ++first; // passing in *first
+ return first;
+ }
+
+Again, typically, we, as clients, see only the first step. However, in this
+document and in the examples and tests provided, don't be surprised to see the
+first and second steps juxtaposed in order to illustrate the complete semantics
+of Phoenix expressions. Examples:
+
+ int x = 1;
+ int y = 2;
+
+ cout << (arg1 % 2 == 1)(x) << endl; // prints 1 or true
+ cout << (arg1 % 2 == 1)(y) << endl; // prints 0 or false
+
+
+[h2 Forwarding Function Problem]
+
+Usually, we, as clients, write the call-back functions while libraries (such as
+STL) provide the callee (e.g. `find_if`). In case the role is reversed, e.g.
+if you have to write an STL algorithm that takes in a predicate, or develop a
+GUI library that accepts event handlers, you have to be aware of a little known
+problem in C++ called the "__forwarding__".
+
+Look again at the code above:
+
+ (arg1 % 2 == 1)(x)
+
+Notice that, in the second-stage (the final evaluation), we used a variable `x`.
+
+In Phoenix we emulated perfect forwarding through Preprocessor Macros generating
+code to allow const and non-const references.
+
+We generate these second-stage overloads for Phoenix expression up to
+`PHOENIX_PERFECT_FORWARD_LIMIT`
+
+[note You can set `PHOENIX_PERFECT_FORWARD_LIMIT`, the predefined maximum perfect forward arguments an
+actor can take. By default, `PHOENIX_PERFECT_FORWARDLIMIT` is set to 3.]
+
+
+[/
+Be aware that the second stage cannot accept non-const temporaries and literal
+constants. Hence, this will fail:
+
+ (arg1 % 2 == 1)(123) // Error!
+
+Disallowing non-const rvalues partially solves the "__forwarding__" but
+prohibits code like above.
+]
+
+[h2 Polymorphic Functions]
+
+Unless otherwise noted, Phoenix generated functions are fully polymorphic. For
+instance, the `add` example above can apply to integers, floating points, user
+defined complex numbers or even strings. Example:
+
+ std::string h("Hello");
+ char const* w = " World";
+ std::string r = add(arg1, arg2)(h, w);
+
+evaluates to `std::string("Hello World")`. The observant reader might notice
+that this function call in fact takes in heterogeneous arguments where `arg1` is
+of type `std::string` and `arg2` is of type `char const*`. `add` still works
+because the C++ standard library allows the expression `a + b` where `a` is a
+`std::string` and `b` is a `char const*`.
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,18 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Composite]
+
+ template <typename F, template <typename> class Actor, typename... A>
+ struct compose
+ {
+ result_type const operator()(A... a) const;
+ };
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,114 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Core]
+
+Actors are composed to create more complex actors in a tree-like hierarchy. The
+primitives are atomic entities that are like the leaves in the tree. Phoenix is
+extensible. New primitives can be added anytime. Right out of the box, there are
+only a few primitives, these are all defined in the Core module.
+
+This section shall deal with these preset primitives.
+
+[section Values]
+
+
+ #include <boost/phoenix/core/value.hpp>
+
+Whenever we see a constant in a partially applied function, an
+
+ actor<value, T>
+
+(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
+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
+cases, there's no need to explicitly use `val`, but, as we'll see later on,
+there are situations where this is unavoidable.
+
+[h2 Evaluating a Value]
+
+Like arguments, values are also actors. As such, values can be evaluated.
+Invoking a value gives the value's identity. Example:
+
+ cout << val(3)() << val("Hello World")();
+
+prints out "3 Hello World".
+
+[endsect]
+
+[section References]
+
+ #include <boost/phoenix/core/reference.hpp>
+
+Values are immutable constants. Attempting to modify a value will result in a
+compile time error. When we want the function to modify the parameter, we use a
+reference instead. For instance, imagine a lazy function `add_assign`:
+
+ void add_assign(T& x, T y) { x += y; } // pseudo code
+
+Here, we want the first function argument, x, to be mutable. Obviously, we
+cannot write:
+
+ add_assign(1, 2) // error first argument is immutable
+
+In C++, we can pass in a reference to a variable as the first argument in our
+example above. Yet, by default, the library forces arguments passed to partially
+applied functions functions to be immutable values (see [link phoenix.reference.core.values
+Values]). To achieve our intent, we use:
+
+ actor<reference, T&>
+
+This is similar to `actor<value, T>` above but instead holds a reference to a
+variable.
+
+We normally don't instantiate `actor<reference, T>` objects directly. Instead we
+use `ref`. For example (where `i` is an `int` variable):
+
+ add_assign(ref(i), 2)
+
+[h2 Evaluating a Reference]
+
+References are actors. Hence, references can be evaluated. Such invocation gives
+the references's identity. Example:
+
+ int i = 3;
+ char const* s = "Hello World";
+ cout << ref(i)() << ref(s)();
+
+prints out "3 Hello World"
+
+[endsect]
+
+[section Constant References]
+
+
+ #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
+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.
+
+[endsect]
+
+[section Arguments]
+[endsect]
+
+[section Nothing]
+[endsect]
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/organisation.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,82 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Organization]
+
+Care and attention to detail was given, painstakingly, to the design and
+implementation of Phoenix.
+
+The library is organized in four layers:
+
+[$images/organization.png]
+
+The modules are orthogonal, with no cyclic dependencies.
+Lower layers do not depend on higher layers. Modules in a layer do not depend on other modules in the same layer.
+This means, for example, that Bind can be completely discarded if it is
+not required; or one could perhaps take out Operator and Statement and just use Function,
+which may be desireable in a pure FP application.
+
+The library has grown from the original Phoenix but still comprises only
+header files. There are no object files to link against.
+
+[h2 Core]
+
+The lowest two layers comprise the core.
+
+The `Actor` is the main concept behind the library. Lazy functions are
+abstracted as actors. There are only 2
+kinds of actors:
+
+# Primitives
+# Composites
+
+Primitives provide the basic building blocks of functionality within Phoenix.
+Composites are used to combine these primitives together to provide more
+powerful functionality.
+
+Composites are composed of zero or more actors. Each actor in a composite can
+again be another composite.
+
+[table Modules
+ [[Module] [Description]]
+ [[Function] [Lazy functions support (e.g. `add`)]]
+ [[Operator] [Lazy operators support (e.g. `+`)]]
+ [[Statement] [Lazy statments (e.g. `if_`, `while_`)]]
+ [[Object] [Lazy casts (e.g. `static_cast_`),
+ object creation destruction (e.g.
+ `new_`, `delete_`)]]
+ [[Scope] [Support for scopes, local variables and lambda-lambda]]
+ [[Bind] [Lazy functions from free functions, member functions or member variables.]]
+ [[Container] [Set of predefined "lazy" functions that work on STL
+ containers and sequences (e.g. `push_back`).]]
+ [[Algorithm] [Set of predefined "lazy" versions of the STL algorithms
+ (e.g. `find_if`).]]
+]
+
+Each module is defined in a header file with the same name. For example,
+the core module is defined in `<boost/phoenix/core.hpp>`.
+
+[table Includes
+ [[Module] [File]]
+ [[Core] [`#include <boost/phoenix/core.hpp>`]]
+ [[Function] [`#include <boost/phoenix/function.hpp>`]]
+ [[Operator] [`#include <boost/phoenix/operator.hpp>`]]
+ [[Statement] [`#include <boost/phoenix/statement.hpp>`]]
+ [[Object] [`#include <boost/phoenix/object.hpp>`]]
+ [[Scope] [`#include <boost/phoenix/scope.hpp>`]]
+ [[Bind] [`#include <boost/phoenix/bind.hpp>`]]
+ [[Container] [`#include <boost/phoenix/container.hpp>`]]
+ [[Algorithm] [`#include <boost/phoenix/algorithm.hpp>`]]
+]
+
+[blurb __tip__ Finer grained include files are available per feature; see the
+succeeding sections.]
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/references.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/references.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,39 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section References]
+
+# Why Functional Programming Matters, John Hughes, 1989.
+ Available online at [@http://www.math.chalmers.se/~rjmh/Papers/whyfp.html].
+# Boost.Lambda library, Jaakko Jarvi, 1999-2004 Jaakko Jarvi, Gary Powell.
+ Available online at [@http://www.boost.org/libs/lambda/].
+# Functional Programming in C++ using the FC++ Library: a short article
+ introducing FC++, Brian McNamara and Yannis Smaragdakis, August 2003. Available
+ online at [@http://www.cc.gatech.edu/~yannis/fc++/].
+# Side-effects and partial function application in C++, Jaakko Jarvi and Gary
+ Powell, 2001. Available online at
+ [@http://osl.iu.edu/~jajarvi/publications/papers/mpool01.pdf].
+# Spirit Version 1.8.1, Joel de Guzman, Nov 2004. Available online at
+ [@http://www.boost.org/libs/spirit/].
+# The Boost MPL Library, Aleksey Gurtovoy and David Abrahams, 2002-2004.
+ Available online at [@http://www.boost.org/libs/mpl/].
+# Generic Programming Redesign of Patterns, Proceedings of the 5th European
+ Conference on Pattern Languages of Programs, (EuroPLoP'2000) Irsee, Germany,
+ July 2000. Available online at
+ [@http://www.coldewey.com/europlop2000/papers/geraud%2Bduret.zip].
+# A Gentle Introduction to Haskell, Paul Hudak, John Peterson and Joseph Fasel,
+ 1999. Available online at [@http://www.haskell.org/tutorial/].
+# Large scale software design, John Lackos, ISBN 0201633620, Addison-Wesley, July
+ 1996.
+# Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma,
+ Richard Helm, Ralph Jhonson, and John Vlissides, Addison-Wesley, 1995.
+# The Forwarding Problem: Arguments Peter Dimov, Howard E. Hinnant, Dave
+ Abrahams, September 09, 2002. Available online: __forwarding__.
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,48 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Starter Kit]
+
+Most "quick starts" only get you a few blocks from where you are. From there,
+you are on your own. Yet, typically, you'd want to get to the next city. This
+starter kit shall be as minimal as possible, yet packed as much power as
+possible.
+
+So you are busy and always on the go. You do not wish to spend a lot of time
+studying the library. You wish to be spared the details for later when you need
+it. For now, all you need to do is to get up to speed as quickly as possible and
+start using the library. If this is the case, this is the right place to start.
+
+This chapter is by no means a thorough discourse of the library. For more
+information on Phoenix, please take some time to read the rest of the User's
+Guide. Yet, if you just want to use the library quickly, now, this chapter will
+probably suffice. Rather than taking you to the details of the library, we shall
+try to provide you with annotated exemplars instead. Hopefully, this will get
+you into high gear quickly.
+
+[h2 Functors everywhere]
+
+Phoenix is built on function objects (functors). The functor is the main
+building block. We compose functors to build more complex functors... to build
+more complex functors... and so on. Almost everything is a functor.
+
+[note Functors are so ubiquitous in Phoenix that, in the manual, the
+words /"functor"/ and /"function"/ are used interchangeably.]
+
+[include starter_kit/values.qbk]
+[include starter_kit/references.qbk]
+[include starter_kit/arguments.qbk]
+[include starter_kit/composites.qbk]
+[include starter_kit/operator.qbk]
+[include starter_kit/statement.qbk]
+[include starter_kit/object.qbk]
+[include starter_kit/function.qbk]
+[include starter_kit/more.qbk]
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/arguments.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/arguments.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,35 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Arguments]
+
+Arguments are also functions? You bet!
+
+Until now, we have been dealing with expressions returning a nullary function.
+Arguments, on the other hand, evaluate to an N-ary function. An argument
+represents the Nth argument. There are a few predefined arguments arg1,
+arg2, arg3, arg4 and so on (and it's __bll__ counterparts: _1, _2, _3, _4 and so
+on). Examples:
+
+ arg1 // one-or-more argument function that returns its first argument
+ arg2 // two-or-more argument function that returns its second argument
+ arg3 // three-or-more argument function that returns its third argument
+
+`argN` returns the Nth argument. Examples:
+
+ int i = 3;
+ char const* s = "Hello World";
+ cout << arg1(i) << endl; // prints 3
+ cout << arg2(i, s) << endl; // prints "Hello World"
+
+(See [@../../example/users_manual/arguments.cpp arguments.cpp])
+
+[blurb __tip__ Learn more about arguments [/link phoenix.primitives.arguments here.]]
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/composites.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/composites.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,19 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Composites]
+
+What we have seen so far, are what are called *primitives*. You can think of
+primitives (such as values, references and arguments) as atoms.
+
+Things start to get interesting when we start /composing/ primitives to form
+*composites*. The composites can, in turn, be composed to form even more complex
+composites.
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/function.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/function.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,62 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Lazy Functions]
+
+As you write more lambda functions, you'll notice certain patterns that you wish
+to refactor as reusable functions. When you reach that point, you'll wish that
+ordinary functions can co-exist with phoenix functions. Unfortunately, the
+/immediate/ nature of plain C++ functions make them incompatible.
+
+Lazy functions are your friends. The library provides a facility to make lazy
+functions. The code below is a rewrite of the `is_odd` function using the
+facility:
+
+ struct is_odd_impl
+ {
+ typedef bool result_type;
+
+ template <typename Arg>
+ bool operator()(Arg arg1) const
+ {
+ return arg1 % 2 == 1;
+ }
+ };
+
+ function<is_odd_impl> is_odd;
+
+[h2 Things to note:]
+
+[/
+* `result` is a nested metafunction that reflects the return type of the
+ function (in this case, bool). This makes the function fully polymorphic:
+ It can work with arbitrary `Arg` types.
+* There are as many Args in the `result` metafunction as in the actual
+ `operator()`.
+]
+* Result type deduction is implemented with the help of the result_of protocol. For more information see __boost_result_of__
+* `is_odd_impl` implements the function.
+* `is_odd`, an instance of `function<is_odd_impl>`, is the lazy function.
+
+Now, `is_odd` is a truly lazy function that we can use in conjunction with the
+rest of phoenix. Example:
+
+ find_if(c.begin(), c.end(), is_odd(arg1));
+
+(See [@../../example/users_manual/function.cpp function.cpp])
+
+[h2 Predefined Lazy Functions]
+
+The library is chock full of STL savvy, predefined lazy functions covering the
+whole of the STL containers, iterators and algorithms. For example, there are lazy
+versions of container related operations such as assign, at, back, begin,
+pop_back, pop_front, push_back, push_front, etc. (See [/link phoenix.container
+Container]).
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/more.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/more.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,21 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section More]
+
+As mentioned earlier, this chapter is not a thorough discourse of the library.
+It is meant only to cover enough ground to get you into high gear as quickly as
+possible. Some advanced stuff is not discussed here (e.g. [/link phoenix.composite.scope
+Scopes]); nor are features that provide alternative (short-hand) ways to do the
+same things (e.g. [/link phoenix.composite.bind Bind] vs. Lazy Functions).
+
+[blurb __tip__ ...*If you still wish to learn more, the read on...*]
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/object.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/object.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,26 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Construct, New, Delete, Casts]
+
+You'll probably want to work with objects. There are lazy versions of
+constructor calls, `new`, `delete` and the suite of C++ casts. Examples:
+
+ construct<std::string>(arg1, arg2) // constructs a std::string from arg1, arg2
+ new_<std::string>(arg1, arg2) // makes a new std::string from arg1, arg2
+ delete_(arg1) // deletes arg1 (assumed to be a pointer)
+ static_cast_<int*>(arg1) // static_cast's arg1 to an int*
+
+[note Take note that, by convention, names that conflict with C++
+reserved words are appended with a single trailing underscore `'_'`]
+
+[blurb __tip__ Learn more about this [/link phoenix.composite.object here.]]
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/operator.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/operator.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,81 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Lazy Operators]
+
+You can use the usual set of operators to form composites. Examples:
+
+ arg1 * arg1
+ ref(x) = arg1 + ref(z)
+ arg1 = arg2 + (3 * arg3)
+ ref(x) = arg1[arg2] // assuming arg1 is indexable and arg2 is a valid index
+
+Note the expression: `3 * arg3`. This expression is actually a short-hand
+equivalent to: `val(3) * arg3`. In most cases, like above, you can get away with
+it. But in some cases, you will have to explicitly wrap your values in `val`.
+Rules of thumb:
+
+* In a binary expression (e.g. `3 * arg3`), at least one of the operands must be
+ a phoenix primitive or composite.
+* In a unary expression (e.g. `arg1++`), the single operand must be a phoenix
+ primitive or composite.
+
+If these basic rules are not followed, the result is either an error, or is
+immediately evaluated. Some examples:
+
+ ref(x) = 123 // lazy
+ x = 123 // immediate
+
+ ref(x)[0] // lazy
+ x[0] // immediate
+
+ ref(x)[ref(i)] // lazy
+ ref(x)[i] // lazy (equivalent to ref(x)[val(i)])
+ x[ref(i)] // illegal (x is not a phoenix primitive or composite)
+ ref(x[ref(i)]) // illegal (x is not a phoenix primitive or composite)
+
+[blurb __tip__ Learn more about operators [/link phoenix.composite.operator here.]]
+
+[h2 First Practical Example]
+
+We've covered enough ground to present a real world example. We want to find the
+first odd number in an STL container. Normally we use a functor (function
+object) or a function pointer and pass that in to STL's `find_if` generic
+function:
+
+Write a function:
+
+ bool
+ is_odd(int arg1)
+ {
+ return arg1 % 2 == 1;
+ }
+
+Pass a pointer to the function to STL's `find_if` algorithm:
+
+ find_if(c.begin(), c.end(), &is_odd)
+
+Using Phoenix, the same can be achieved directly with a one-liner:
+
+ find_if(c.begin(), c.end(), arg1 % 2 == 1)
+
+The expression `arg1 % 2 == 1` automagically creates a functor with the expected
+behavior. In FP, this unnamed function is called a lambda function. Unlike the
+function pointer version, which is monomorphic (expects and works only with a
+fixed type int argument), the Phoenix version is fully polymorphic and works
+with any container (of ints, of longs, of bignum, etc.) as long as its elements
+can handle the `arg1 % 2 == 1` expression.
+
+(See [@../../example/users_manual/find_if.cpp find_if.cpp])
+
+[blurb __tip__ ...[*That's it, we're done]. Well if you wish to know a little bit
+more, read on...]
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/references.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/references.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,31 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section References]
+
+References are functions. They hold a reference to a value stored somehere.
+For example, given:
+
+ int i = 3;
+ char const* s = "Hello World";
+
+we create `references` to `i` and `s` this way:
+
+ ref(i)
+ ref(s)
+
+Like `val`, the expressions above evaluates to a nullary function; the first one
+returning an `int&`, and the second one returning a `char const*&`.
+
+(See [@../../example/users_manual/references.cpp references.cpp])
+
+[blurb __tip__ Learn more about references [/link phoenix.primitives.references here.]]
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/statement.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/statement.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,32 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Lazy Statements]
+
+Lazy statements? Sure. There are lazy versions of the C++ statements we all know
+and love. For example:
+
+ if_(arg1 > 5)
+ cout << arg1
+
+Say, for example, we wish to print all the elements that are greater than 5
+(separated by a comma) in a vector. Here's how we write it:
+
+ for_each(v.begin(), v.end(),
+ if_(arg1 > 5)
+ [
+ cout << arg1 << ", "
+ ]
+ );
+
+(See [@../../example/users_manual/if.cpp if.cpp])
+
+[blurb __tip__ Learn more about statements [/link phoenix.composite.statement here.]]
+
+[endsect]

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/values.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/starter_kit/values.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,66 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Values]
+
+Values are functions! Examples:
+
+ val(3)
+ val("Hello, World")
+
+The first evaluates to a nullary function (a function taking no arguments) that
+returns an `int`, `3`. The second evaluates to a nullary function that returns
+a `char const(&)[13]`, `"Hello, World"`.
+
+[h2 Lazy Evaluation]
+
+Confused? `val(3)` is a unary function, you say? Yes it is. However, read
+carefully: /"evaluates to a nullary function"/. `val(3)` evaluates to (returns) a
+nullary function. Aha! `val(3)` returns a function! So, since `val(3)` returns a
+function, you can invoke it. Example:
+
+ cout << val(3)() << endl;
+
+(See [@../../example/users_manual/values.cpp values.cpp])
+
+[blurb __tip__ Learn more about values [/link phoenix.primitives.values here.]]
+
+The second function call (the one with no arguments) calls the nullary function
+which then returns `3`. The need for a second function call is the reason why
+the function is said to be [*/Lazily Evaluated/]. The first call doesn't do
+anything. You need a second call to finally evaluate the thing. The first call
+lazily evaluates the function; i.e. doesn't do anything and defers the evaluation
+for later.
+
+[h2 Callbacks]
+
+It may not be immediately apparent how lazy evaluation can be useful by just
+looking at the example above. Putting the first and second function call in a
+single line is really not very useful. However, thinking of `val(3)` as a
+callback function (and in most cases they are actually used that way), will make
+it clear. Example:
+
+ template <typename F>
+ void print(F f)
+ {
+ cout << f() << endl;
+ }
+
+ int
+ main()
+ {
+ print(val(3));
+ print(val("Hello World"));
+ return 0;
+ }
+
+(See [@../../example/users_manual/callback.cpp callback.cpp])
+
+[endsect]
+

Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/wrap_up.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/wrap_up.qbk 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -0,0 +1,41 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ 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)
+===============================================================================/]
+
+[section Wrap Up]
+
+Sooner or later more FP techniques become standard practice as people find the
+true value of this programming discipline outside the academe and into the
+mainstream. In as much as structured programming of the 70s and object oriented
+programming in the 80s and generic programming in the 90s shaped our thoughts
+towards a more robust sense of software engineering, FP will certainly be a
+paradigm that will catapult us towards more powerful software design and
+engineering onward into the new millenium.
+
+Let me quote Doug Gregor of Boost.org. About functional style programming
+libraries:
+
+[:['They're gaining acceptance, but are somewhat stunted by the ubiquitousness
+of broken compilers. The C++ community is moving deeper into the so-called "STL-
+style" programming paradigm, which brings many aspects of functional programming
+into the fold. Look at, for instance, the Spirit parser to see how such function
+objects can be used to build Yacc-like grammars with semantic actions that can
+build abstract syntax trees on the fly. This type of functional composition is
+gaining momentum.]]
+
+Indeed. Phoenix is another attempt to introduce more FP techniques into the
+mainstream. Not only is it a tool that will make life easier for the programmer.
+In its own right, the actual design of the library itself is a model of true C++
+FP in action. The library is designed and structured in a strict but clear and
+well mannered FP sense. By all means, use the library as a tool. But for those
+who want to learn more about FP in C++, don't stop there, I invite you to take a
+closer look at the design of the library itself.
+
+So there you have it. Have fun! See you in the FP world.
+
+[endsect]

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/lambda_tests.cpp 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -186,6 +186,14 @@
         //BOOST_TEST(x == 1);
     }
 
+ {
+ int i = 0;
+ lambda[let(_a = _1)[_a = _2](_1, _2)]()(i, 2);
+ // $$$ Fixme. This should not be failing $$$
+ //lambda[let(_a = _1)[_a = _2]]()(i, 2);
+ BOOST_TEST(i == 2);
+ }
+
     return boost::report_errors();
 }
 

Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/let_tests.cpp 2010-08-10 11:29:07 EDT (Tue, 10 Aug 2010)
@@ -164,6 +164,12 @@
         BOOST_TEST( i == 0 );
     }
 
+ {
+ int i = 0;
+ let(_a = _1)[_a = _2](i, 2);
+ BOOST_TEST(i == 2);
+ }
+
     return boost::report_errors();
 }
 


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