|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r64739 - in sandbox/SOC/2010/phoenix3/libs/phoenix/doc: . html html/phoenix html/phoenix/advanced html/phoenix/advanced/extending html/phoenix/advanced/phoenix_in_detail html/phoenix/notes html/phoenix/notes/portability__similarities_and_differences html/phoenix/reference html/phoenix/reference/core html/phoenix/reference/modules html/phoenix/reference/modules/bind html/phoenix/reference/modules/core html/phoenix/reference/modules/object html/phoenix/reference/modules/scope html/phoenix/reference/modules/statement html/phoenix/reference/modules/stl html/phoenix/starter_kit reference
From: thom.heller_at_[hidden]
Date: 2010-08-11 10:00:50
Author: theller
Date: 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
New Revision: 64739
URL: http://svn.boost.org/trac/boost/changeset/64739
Log:
continued documentation - finished porting the phoenix2 docs
Added:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending/extending_actors.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/actors.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/bll___differences__similiarities.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/c__0x_lambdas___differences__similiarities.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_functions.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_member_functions.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_member_variables.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/compatibility_with_other_bind_libraries.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/arguments.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/constant_references.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/nothing.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/references.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/values.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/casts.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/construction.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/delete.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/new.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/lambda.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/let.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/local_variables.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___if_else_____statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/block_statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/for__statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/if__statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/switch__statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/throw_.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/try__catch__statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/while__statement.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/algorithm.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/container.html (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk (contents, props changed)
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/stl.qbk (contents, props changed)
Removed:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/actors.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/composites.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_bind.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_function.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__bind.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__function.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/arguments.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/constant_references.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/nothing.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/references.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/values.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/algorithm.html
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/container.html
Text files modified:
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/Jamfile | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk | 6 +
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/index.html | 101 +++++++++++++------
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html | 10 +
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html | 8 +
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html | 8
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html | 6
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html | 6
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes.html | 20 +--
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html | 6
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html | 8
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html | 63 ++++++++++--
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html | 10 +-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html | 121 +++++++++++++++++++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html | 60 +++++++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html | 50 ++++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html | 30 +++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html | 121 +++++++++++++++++++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html | 27 ++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html | 199 +++++++++++++++++++++++++++++++++++++++
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html | 39 ++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html | 85 ++++++++++++++++-
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html | 6
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html | 4
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest | 47 ++++++---
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk | 20 ---
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/phoenix3.qbk | 1
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/preface.qbk | 2
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk | 33 +-----
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk | 79 +++++++++++++++
sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk | 124 ++++++++++++++++++++++++
35 files changed, 1109 insertions(+), 205 deletions(-)
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-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -19,8 +19,8 @@
<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>toc.section.depth=4
+ <xsl:param>toc.max.depth=4
<xsl:param>generate.section.toc.level=4
<xsl:param>boost.libraries=../../../libraries.htm
<xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/advanced.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -13,7 +13,7 @@
Section explaining how phoenix expression look like, the structure of the AST, and so on
-[section Composites]
+[section Actors]
[endsect]
[section AST structure]
@@ -25,6 +25,10 @@
Section about how to extend phoenix
+[section Extending Actors]
+
+[endsect]
+
[endsect]
[section Transformations]
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-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -26,7 +26,7 @@
</h3></div></div>
<div><p class="copyright">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller</p></div>
<div><div class="legalnotice">
-<a name="id671499"></a><p>
+<a name="id736318"></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>
@@ -56,53 +56,90 @@
<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>
+<dd><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/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">Function</span></dt>
<dt><span class="section">Operator</span></dt>
<dt><span class="section">Statement</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="phoenix/reference/modules/statement/block_statement.html">Block
+ Statement</a></span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/statement/if__statement.html">if_
+ Statement</a></span></dt>
+<dt><span class="section">if_else_ Statement</span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/statement/switch__statement.html">switch_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/statement/while__statement.html">while_
+ Statement</a></span></dt>
+<dt><span class="section">do_while_ Statement</span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/statement/for__statement.html">for_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/statement/try__catch__statement.html">try_
+ catch_ Statement</a></span></dt>
+<dt><span class="section">throw_</span></dt>
+</dl></dd>
<dt><span class="section">Object</span></dt>
+<dd><dl>
+<dt><span class="section">Construction</span></dt>
+<dt><span class="section">New</span></dt>
+<dt><span class="section">Delete</span></dt>
+<dt><span class="section">Casts</span></dt>
+</dl></dd>
<dt><span class="section">Scope</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="phoenix/reference/modules/scope/local_variables.html">Local
+ Variables</a></span></dt>
+<dt><span class="section">let</span></dt>
+<dt><span class="section">lambda</span></dt>
+</dl></dd>
<dt><span class="section">Bind</span></dt>
-<dt><span class="section">Container</span></dt>
-<dt><span class="section">Algorithm</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="phoenix/reference/modules/bind/binding_functions.html">Binding
+ Functions</a></span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/bind/binding_member_functions.html">Binding
+ Member Functions</a></span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/bind/binding_member_variables.html">Binding
+ Member Variables</a></span></dt>
+<dt><span class="section"><a href="phoenix/reference/modules/bind/compatibility_with_other_bind_libraries.html">Compatibility
+ with other bind libraries</a></span></dt>
+</dl></dd>
+<dt><span class="section">STL</span></dt>
+<dd><dl>
+<dt><span class="section">Container</span></dt>
+<dt><span class="section">Algorithm</span></dt>
+</dl></dd>
</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">Actors</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>
+<dd><dl><dt><span class="section"><a href="phoenix/advanced/extending/extending_actors.html">Extending
+ Actors</a></span></dt></dl></dd>
<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"><a href="phoenix/notes/c__0x_lambdas___differences__similiarities.html">C++0x
+ Lambdas - Differences, Similiarities</a></span></dt>
+<dt><span class="section"><a href="phoenix/notes/bll___differences__similiarities.html">BLL -
+ Differences, Similiarities</a></span></dt>
<dt><span class="section">Performance</span></dt>
<dd><dl>
<dt><span class="section">Compiletime</span></dt>
@@ -115,7 +152,7 @@
</dl>
</div>
<a name="phoenix.preface"></a><h2>
-<a name="id702229"></a>
+<a name="id767048"></a>
<a class="link" href="index.html#phoenix.preface">Preface</a>
</h2>
<div class="blockquote"><blockquote class="blockquote">
@@ -146,7 +183,7 @@
<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 name="id735106"></a>
<a class="link" href="index.html#phoenix.description">Description</a>
</h3>
<p>
@@ -164,7 +201,7 @@
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 name="id735153"></a>
<a class="link" href="index.html#phoenix.how_to_use_this_manual">How to use this manual</a>
</h3>
<p>
@@ -186,7 +223,7 @@
icons precede some text to indicate:
</p>
<div class="table">
-<a name="id670365"></a><p class="title"><b>Table 1.1. Icons</b></p>
+<a name="id735184"></a><p class="title"><b>Table 1.1. Icons</b></p>
<div class="table-contents"><table class="table" summary="Icons">
<colgroup>
<col>
@@ -269,20 +306,20 @@
<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
+ <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span> Unless otherwise noted <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><span class="special">;</span></code>
+ is assumed
</p>
</div>
<a name="phoenix._emphasis_role__bold___emphasis____to_my_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
-<a name="id711183"></a>
+<a name="id776006"></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: August 10, 2010 at 15:20:07 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 11, 2010 at 13:54:53 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/actors.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/actors.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,319 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Actors</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 1. Phoenix 3.0">
-<link rel="up" href="../index.html" title="Chapter 1. Phoenix 3.0">
-<link rel="prev" href="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>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="introduction.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>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="phoenix.actors"></a><a class="link" href="actors.html" title="Actors">Actors</a>
-</h2></div></div></div>
-<div class="toc"><dl><dt><span class="section">Concepts</span></dt></dl></div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="phoenix.actors.concepts"></a><a class="link" href="actors.html#phoenix.actors.concepts" title="Concepts">Concepts</a>
-</h3></div></div></div>
-<div class="toc"><dl><dt><span class="section">Actor</span></dt></dl></div>
-<p>
- The <code class="computeroutput"><span class="identifier">Actor</span></code> is the main concept
- behind the library.
- </p>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="phoenix.actors.concepts.actor"></a><a class="link" href="actors.html#phoenix.actors.concepts.actor" title="Actor">Actor</a>
-</h4></div></div></div>
-<a name="phoenix.actors.concepts.actor.description"></a><h6>
-<a name="id2773183"></a>
- <a class="link" href="actors.html#phoenix.actors.concepts.actor.description">Description</a>
- </h6>
-<p>
- An Actor is way to define a phoenix expression or statement. Actors are
- TR1 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="../../../../../doc/html/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>
-<div class="variablelist">
-<p class="title"><b>Notation</b></p>
-<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
-<dd><p>
- An actor
- </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code></span></dt>
-<dd><p>
- An actor type
- </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Expr0</span><span class="special">,</span>
- <span class="identifier">Expr1</span><span class="special">...,</span>
- <span class="identifier">ExprN</span></code></span></dt>
-<dd><p>
- Arbitrary proto expressions
- </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">expr0</span><span class="special">,</span>
- <span class="identifier">expr1</span><span class="special">...,</span>
- <span class="identifier">exprN</span></code></span></dt>
-<dd><p>
- Objects of arbitrary proto expressions
- </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">eval</span></code></span></dt>
-<dd><p>
- phoenix expression evaluator
- </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">env</span></code></span></dt>
-<dd><p>
- Boost.Fusion sequence
- </p></dd>
-</dl>
-</div>
-<a name="phoenix.actors.concepts.actor.valid_expressions"></a><h6>
-<a name="id2773426"></a>
- <a class="link" href="actors.html#phoenix.actors.concepts.actor.valid_expressions">Valid Expressions</a>
- </h6>
-<p>
- For any Actor the following expressions must be valid:
- </p>
-<div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Expression
- </p>
- </th>
-<th>
- <p>
- Return type
- </p>
- </th>
-<th>
- <p>
- Type Requirements
- </p>
- </th>
-<th>
- <p>
- Runtime Complexity
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eval</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Any type
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eval</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
- <span class="identifier">env</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Any type
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">(</span><span class="identifier">expr0</span><span class="special">,</span>
- <span class="identifier">expr1</span><span class="special">...,</span>
- <span class="identifier">exprN</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Boost.Proto expression
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-</tr>
-</tbody>
-</table></div>
-<a name="phoenix.actors.concepts.actor.result_type_expressions"></a><h6>
-<a name="id2823560"></a>
- <a class="link" href="actors.html#phoenix.actors.concepts.actor.result_type_expressions">Result
- Type Expressions</a>
- </h6>
-<div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Expression
- </p>
- </th>
-<th>
- <p>
- Compile Time Complexity
- </p>
- </th>
-</tr></thead>
-<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">result_of</span><span class="special"><</span><span class="identifier">A</span><span class="special">(</span><span class="identifier">Expr0</span><span class="special">,</span>
- <span class="identifier">Expr1</span><span class="special">...,</span>
- <span class="identifier">ExprN</span><span class="special">)>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
-</tr></tbody>
-</table></div>
-<a name="phoenix.actors.concepts.actor.expression_semantics"></a><h6>
-<a name="id2823692"></a>
- <a class="link" href="actors.html#phoenix.actors.concepts.actor.expression_semantics">Expression
- Semantics</a>
- </h6>
-<div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Expression
- </p>
- </th>
-<th>
- <p>
- Semantics
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eval</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Evaluates the given phoenix expression tree, no environment given
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eval</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
- <span class="identifier">env</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Evaluates the given phoenix expression tree with a given environment
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">(</span><span class="identifier">expr0</span><span class="special">,</span>
- <span class="identifier">expr1</span><span class="special">...,</span>
- <span class="identifier">exprN</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The phoenix expression tree
- </p>
- </td>
-</tr>
-</tbody>
-</table></div>
-<a name="phoenix.actors.concepts.actor.models"></a><h6>
-<a name="id2823889"></a>
- <a class="link" href="actors.html#phoenix.actors.concepts.actor.models">Models</a>
- </h6>
-<p>
- TODO
- </p>
-</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 © 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="../../../../../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>
-</div>
-</body>
-</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../index.html" title="Chapter 1. Phoenix 3.0">
-<link rel="prev" href="reference/modules/algorithm.html" title="Algorithm">
+<link rel="prev" href="reference/modules/stl/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>
+<a accesskey="p" href="reference/modules/stl/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">
@@ -22,11 +22,13 @@
<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">Actors</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>
+<dd><dl><dt><span class="section"><a href="advanced/extending/extending_actors.html">Extending
+ Actors</a></span></dt></dl></dd>
<dt><span class="section">Transformations</span></dt>
</dl></div>
</div>
@@ -40,7 +42,7 @@
</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>
+<a accesskey="p" href="reference/modules/stl/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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -7,18 +7,20 @@
<link rel="home" href="../../index.html" title="Chapter 1. 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">
+<link rel="next" href="extending/extending_actors.html" title="Extending Actors">
</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>
+<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="extending/extending_actors.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>
+<div class="toc"><dl><dt><span class="section"><a href="extending/extending_actors.html">Extending
+ Actors</a></span></dt></dl></div>
<p>
Section about how to extend phoenix
</p>
@@ -33,7 +35,7 @@
</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>
+<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="extending/extending_actors.html"><img src="../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending/extending_actors.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/extending/extending_actors.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,35 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Extending Actors</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../extending.html" title="Extending">
+<link rel="prev" href="../extending.html" title="Extending">
+<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="../extending.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../extending.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><h4 class="title">
+<a name="phoenix.advanced.extending.extending_actors"></a><a class="link" href="extending_actors.html" title="Extending Actors">Extending
+ Actors</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 © 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="../extending.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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -7,20 +7,20 @@
<link rel="home" href="../../index.html" title="Chapter 1. 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">
+<link rel="next" href="phoenix_in_detail/actors.html" title="Actors">
</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>
+<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/actors.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">Actors</span></dt>
<dt><span class="section"><a href="phoenix_in_detail/ast_structure.html">AST
structure</a></span></dt>
</dl></div>
@@ -39,7 +39,7 @@
</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>
+<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/actors.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/actors.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/actors.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Actors</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../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.actors"></a><a class="link" href="actors.html" title="Actors">Actors</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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/ast_structure.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../phoenix_in_detail.html" title="Phoenix in Detail">
-<link rel="prev" href="composites.html" title="Composites">
+<link rel="prev" href="actors.html" title="Actors">
<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>
+<a accesskey="p" href="actors.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
@@ -29,7 +29,7 @@
</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>
+<a accesskey="p" href="actors.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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/composites.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/phoenix_in_detail/composites.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/advanced/transformations.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../advanced.html" title="Advanced">
-<link rel="prev" href="extending.html" title="Extending">
+<link rel="prev" href="extending/extending_actors.html" title="Extending Actors">
<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>
+<a accesskey="p" href="extending/extending_actors.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>
@@ -28,7 +28,7 @@
</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>
+<a accesskey="p" href="extending/extending_actors.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/notes.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -7,31 +7,25 @@
<link rel="home" href="../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../index.html" title="Chapter 1. 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">
+<link rel="next" href="notes/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="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>
+<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/porting_from_phoenix_2_0.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"><a href="notes/c__0x_lambdas___differences__similiarities.html">C++0x
+ Lambdas - Differences, Similiarities</a></span></dt>
+<dt><span class="section"><a href="notes/bll___differences__similiarities.html">BLL -
+ Differences, Similiarities</a></span></dt>
<dt><span class="section">Performance</span></dt>
<dd><dl>
<dt><span class="section">Compiletime</span></dt>
@@ -49,7 +43,7 @@
</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>
+<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/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/bll___differences__similiarities.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/bll___differences__similiarities.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BLL - Differences, Similiarities</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../notes.html" title="Notes">
+<link rel="prev" href="c__0x_lambdas___differences__similiarities.html" title="C++0x Lambdas - Differences, Similiarities">
+<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="c__0x_lambdas___differences__similiarities.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.bll___differences__similiarities"></a><a class="link" href="bll___differences__similiarities.html" title="BLL - Differences, Similiarities">BLL -
+ Differences, Similiarities</a>
+</h3></div></div></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 © 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="c__0x_lambdas___differences__similiarities.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/notes/c__0x_lambdas___differences__similiarities.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/c__0x_lambdas___differences__similiarities.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,40 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>C++0x Lambdas - Differences, Similiarities</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../notes.html" title="Notes">
+<link rel="prev" href="porting_from_phoenix_2_0.html" title="Porting from Phoenix 2.0">
+<link rel="next" href="bll___differences__similiarities.html" title="BLL - Differences, Similiarities">
+</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="bll___differences__similiarities.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.c__0x_lambdas___differences__similiarities"></a><a class="link" href="c__0x_lambdas___differences__similiarities.html" title="C++0x Lambdas - Differences, Similiarities">C++0x
+ Lambdas - Differences, Similiarities</a>
+</h3></div></div></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 © 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="bll___differences__similiarities.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/performance.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../notes.html" title="Notes">
-<link rel="prev" href="porting_from_phoenix_2_0.html" title="Porting from Phoenix 2.0">
+<link rel="prev" href="bll___differences__similiarities.html" title="BLL - Differences, Similiarities">
<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>
+<a accesskey="p" href="bll___differences__similiarities.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">
@@ -38,7 +38,7 @@
</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>
+<a accesskey="p" href="bll___differences__similiarities.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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,48 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_bind.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_bind.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_function.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/boost_function.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/c__0x_lambdas.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,35 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__bind.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__bind.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__function.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/portability__similarities_and_differences/std__function.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/notes/porting_from_phoenix_2_0.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../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">
+<link rel="prev" href="../notes.html" title="Notes">
+<link rel="next" href="c__0x_lambdas___differences__similiarities.html" title="C++0x Lambdas - Differences, Similiarities">
</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>
+<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="c__0x_lambdas___differences__similiarities.html"><img src="../../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
@@ -35,7 +35,7 @@
</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>
+<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="c__0x_lambdas___differences__similiarities.html"><img src="../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -25,26 +25,67 @@
<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>
+<dd><dl>
+<dt><span class="section">Values</span></dt>
+<dt><span class="section">References</span></dt>
+<dt><span class="section"><a href="reference/modules/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">Function</span></dt>
<dt><span class="section">Operator</span></dt>
<dt><span class="section">Statement</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/modules/statement/block_statement.html">Block
+ Statement</a></span></dt>
+<dt><span class="section"><a href="reference/modules/statement/if__statement.html">if_
+ Statement</a></span></dt>
+<dt><span class="section">if_else_ Statement</span></dt>
+<dt><span class="section"><a href="reference/modules/statement/switch__statement.html">switch_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="reference/modules/statement/while__statement.html">while_
+ Statement</a></span></dt>
+<dt><span class="section">do_while_ Statement</span></dt>
+<dt><span class="section"><a href="reference/modules/statement/for__statement.html">for_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="reference/modules/statement/try__catch__statement.html">try_
+ catch_ Statement</a></span></dt>
+<dt><span class="section">throw_</span></dt>
+</dl></dd>
<dt><span class="section">Object</span></dt>
+<dd><dl>
+<dt><span class="section">Construction</span></dt>
+<dt><span class="section">New</span></dt>
+<dt><span class="section">Delete</span></dt>
+<dt><span class="section">Casts</span></dt>
+</dl></dd>
<dt><span class="section">Scope</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/modules/scope/local_variables.html">Local
+ Variables</a></span></dt>
+<dt><span class="section">let</span></dt>
+<dt><span class="section">lambda</span></dt>
+</dl></dd>
<dt><span class="section">Bind</span></dt>
-<dt><span class="section">Container</span></dt>
-<dt><span class="section">Algorithm</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/modules/bind/binding_functions.html">Binding
+ Functions</a></span></dt>
+<dt><span class="section"><a href="reference/modules/bind/binding_member_functions.html">Binding
+ Member Functions</a></span></dt>
+<dt><span class="section"><a href="reference/modules/bind/binding_member_variables.html">Binding
+ Member Variables</a></span></dt>
+<dt><span class="section"><a href="reference/modules/bind/compatibility_with_other_bind_libraries.html">Compatibility
+ with other bind libraries</a></span></dt>
+</dl></dd>
+<dt><span class="section">STL</span></dt>
+<dd><dl>
+<dt><span class="section">Container</span></dt>
+<dt><span class="section">Algorithm</span></dt>
+</dl></dd>
</dl></dd>
</dl></div>
</div>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/actor.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -67,7 +67,7 @@
for evaluation.
</p>
<a name="phoenix.reference.actor.todo"></a><h3>
-<a name="id717198"></a>
+<a name="id782022"></a>
<a class="link" href="actor.html#phoenix.reference.actor.todo">TODO</a>
</h3>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/basics.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -42,7 +42,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.basics.partial_function_application"></a><h3>
-<a name="id714414"></a>
+<a name="id779238"></a>
<a class="link" href="basics.html#phoenix.reference.basics.partial_function_application">Partial
Function Application</a>
</h3>
@@ -98,7 +98,7 @@
be black boxes anymore.
</p>
<a name="phoenix.reference.basics.stl_and_higher_order_functions"></a><h3>
-<a name="id714630"></a>
+<a name="id779454"></a>
<a class="link" href="basics.html#phoenix.reference.basics.stl_and_higher_order_functions">STL
and higher order functions</a>
</h3>
@@ -129,7 +129,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.basics.lazy_evaluation"></a><h3>
-<a name="id714833"></a>
+<a name="id779657"></a>
<a class="link" href="basics.html#phoenix.reference.basics.lazy_evaluation">Lazy Evaluation</a>
</h3>
<p>
@@ -184,7 +184,7 @@
</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)(</span><span class="identifier">y</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">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 name="id780161"></a>
<a class="link" href="basics.html#phoenix.reference.basics.forwarding_function_problem">Forwarding
Function Problem</a>
</h3>
@@ -225,7 +225,7 @@
</p></td></tr>
</table></div>
<a name="phoenix.reference.basics.polymorphic_functions"></a><h3>
-<a name="id715475"></a>
+<a name="id780299"></a>
<a class="link" href="basics.html#phoenix.reference.basics.polymorphic_functions">Polymorphic
Functions</a>
</h3>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/composite.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -7,24 +7,133 @@
<link rel="home" href="../../index.html" title="Chapter 1. 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">
+<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="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>
+<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="modules.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"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span><span class="special">></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">></span>
-<span class="keyword">struct</span> <span class="identifier">compose</span>
+<p>
+ Actors may be combined in a multitude of ways to form composites. Composites
+ are actors that are composed of zero or more actors. Composition is hierarchical.
+ An element of the composite can be a primitive or again another composite.
+ The flexibility to arbitrarily compose hierarchical structures allows us
+ to form intricate constructions that model complex functions, statements
+ and expressions.
+ </p>
+<p>
+ A composite is-a tuple of 0..N actors. N is the predefined maximum actors
+ a composite can take.
+ </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_COMPOSITE_LIMIT</span></code>,
+ the predefined maximum actors a composite can take. By default, <code class="computeroutput"><span class="identifier">PHOENIX_COMPOSITE_LIMIT</span></code> is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> (See <a class="link" href="actor.html" title="Actor">Actor</a>).
+ </p></td></tr>
+</table></div>
+<p>
+ In Phoenix, every actor is a composite. Phoenix is designed in a way that
+ expressions form something like a S-Expr structure. This means that the main
+ building block of phoenix is <code class="computeroutput"><span class="identifier">proto</span><span class="special">::</span><span class="identifier">function</span></code>.
+ </p>
+<p>
+ The concept of a composite is therefore best formulated in terms of <code class="computeroutput"><span class="identifier">proto</span><span class="special">::</span><span class="identifier">function</span></code>
+ </p>
+<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">proto</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="identifier">F</span><span class="special">,</span> <span class="identifier">env</span><span class="special">,</span> <span class="identifier">A0</span><span class="special">,</span> <span class="special">...</span> <span class="identifier">AN</span><span class="special">></span> <span class="special">></span>
+</pre>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">F</span></code></span></dt>
+<dd><p>
+ The evaluator
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">env</span></code></span></dt>
+<dd><p>
+ The environment (placeholder which gets filled during the actual evaluation)
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">A0</span><span class="special">,</span>
+ <span class="special">...</span> <span class="identifier">AN</span></code></span></dt>
+<dd><p>
+ The data carried with an actor
+ </p></dd>
+</dl>
+</div>
+<p>
+ As mentioned each of the <code class="computeroutput"><span class="identifier">A0</span><span class="special">...</span><span class="identifier">AN</span></code> can
+ be another actor or composite, this makes an actor a recursive structure.
+ The actual evluation is handle by the evaluator <code class="computeroutput"><span class="identifier">F</span></code>.
+ To ease the creation of actors, there exist helper class responsible for
+ creating the correct types.
+ </p>
+<a name="phoenix.reference.composite._code__phrase_role__identifier__make_expr__phrase___code_"></a><h3>
+<a name="id782331"></a>
+ <a class="link" href="composite.html#phoenix.reference.composite._code__phrase_role__identifier__make_expr__phrase___code_"><code class="computeroutput"><span class="identifier">make_expr</span></code></a>
+ </h3>
+<p>
+ The first one is the bare-metal of the one provided. It is the natural expression
+ template generator facility of Boost.Proto.
+ </p>
+<p>
+ Usage Example:
+ </p>
+<pre class="programlisting"> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">></span>
+<span class="keyword">typename</span> <span class="identifier">proto</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">make_expr</span><span class="special"><</span><span class="identifier">proto</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">function</span><span class="special">,</span> <span class="identifier">phoenix_domain</span><span class="special">,</span> <span class="identifier">F</span><span class="special">,</span> <span class="identifier">A0</span><span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span>
+ <span class="identifier">make_function</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a0</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">proto</span><span class="special">::</span><span class="identifier">make_expr</span><span class="special"><</span><span class="identifier">proto</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">function</span><span class="special">,</span> <span class="identifier">phoenix_domain</span><span class="special">>(</span><span class="identifier">f</span><span class="special">,</span> <span class="identifier">a0</span><span class="special">);</span>
+ <span class="special">}</span>
+</pre>
+<p>
+ This example creates a lazy function actor, usable within every phoenix expression
+ </p>
+<a name="phoenix.reference.composite._code__phrase_role__identifier__compose_ex__phrase___code_"></a><h3>
+<a name="id782640"></a>
+ <a class="link" href="composite.html#phoenix.reference.composite._code__phrase_role__identifier__compose_ex__phrase___code_"><code class="computeroutput"><span class="identifier">compose_ex</span></code></a>
+ </h3>
+<p>
+ The second one is building upon the proto::make_expr facility, and represents
+ the heart of phoenix expression creation.
+ </p>
+<p>
+ <span class="bold"><strong>Synopsis</strong></span>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span><span class="special">></span> <span class="identifier">Actor</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A0</span> <span class="special">...</span> <span class="identifier">AN</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">compose_ex</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="keyword">typedef</span> <span class="identifier">proto</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">make_expr</span><span class="special"><</span>
+ <span class="identifier">proto</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">function</span>
+ <span class="special">,</span> <span class="identifier">default_domain_with_basic_expr</span>
+ <span class="special">,</span> <span class="identifier">funcwrap</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span>
+ <span class="special">,</span> <span class="identifier">A0</span> <span class="special">...</span> <span class="identifier">AN</span>
+ <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">base_type</span>
+
+ <span class="keyword">typedef</span> <span class="identifier">Actor</span><span class="special"><</span><span class="identifier">base_type</span><span class="special">></span> <span class="identifier">result_type</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">A0</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a0</span><span class="special">,</span> <span class="special">...</span> <span class="identifier">AN</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">an</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<span class="special">};</span>
</pre>
+<a name="phoenix.reference.composite._code__phrase_role__identifier__compose__phrase___code_"></a><h3>
+<a name="id783013"></a>
+ <a class="link" href="composite.html#phoenix.reference.composite._code__phrase_role__identifier__compose__phrase___code_"><code class="computeroutput"><span class="identifier">compose</span></code></a>
+ </h3>
+<p>
+ Convenience class which has <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">Expr</span><span class="special">></span></code> as its Actor:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span><span class="special">></span> <span class="identifier">Actor</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A0</span> <span class="special">...</span> <span class="identifier">AN</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">compose</span><span class="special">:</span> <span class="identifier">compose_ex</span><span class="special"><</span><span class="identifier">F</span><span class="special">,</span> <span class="identifier">actor</span><span class="special">,</span> <span class="identifier">A0</span><span class="special">,</span> <span class="special">...</span> <span class="identifier">AN</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>
@@ -36,7 +145,7 @@
</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>
+<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="modules.html"><img src="../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,54 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/arguments.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/arguments.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/constant_references.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/constant_references.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,48 +0,0 @@
-<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 1. 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"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
-</pre>
-<p>
- Another free function <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code>
- may also be used. <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code>
- creates an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span>
- <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&></span></code> object. This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code>
- but when the data to be passed as argument to a function is heavy and expensive
- to copy by value, the <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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/nothing.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/nothing.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/references.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/references.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,87 +0,0 @@
-<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 1. 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"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
-</pre>
-<p>
- 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">&</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"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&></span>
-</pre>
-<p>
- This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code>
- above but instead holds a reference to a variable.
- </p>
-<p>
- We normally don't instantiate <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code>
- objects directly. Instead we use <code class="computeroutput"><span class="identifier">ref</span></code>.
- For example (where <code class="computeroutput"><span class="identifier">i</span></code> is
- an <code class="computeroutput"><span class="keyword">int</span></code> variable):
- </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"><<</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">)()</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>
- 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 © 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>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/values.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/core/values.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,78 +0,0 @@
-<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 1. 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"><</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">></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"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></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"><</span><span class="identifier">value</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></span></code>
- is implicitly created behind the scenes. This is also equivalent to:
- </p>
-<pre class="programlisting"><span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">val</span><span class="special">(</span><span class="number">6</span><span class="special">))</span>
-</pre>
-<p>
- <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> generates
- an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code>
- 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"><<</span> <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">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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="core/nothing.html" title="Nothing">
+<link rel="prev" href="composite.html" title="Composite">
<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>
+<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="modules/core.html"><img src="../../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
@@ -21,14 +21,64 @@
</h3></div></div></div>
<div class="toc"><dl>
<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="modules/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">Function</span></dt>
<dt><span class="section">Operator</span></dt>
<dt><span class="section">Statement</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="modules/statement/block_statement.html">Block
+ Statement</a></span></dt>
+<dt><span class="section"><a href="modules/statement/if__statement.html">if_
+ Statement</a></span></dt>
+<dt><span class="section">if_else_ Statement</span></dt>
+<dt><span class="section"><a href="modules/statement/switch__statement.html">switch_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="modules/statement/while__statement.html">while_
+ Statement</a></span></dt>
+<dt><span class="section">do_while_ Statement</span></dt>
+<dt><span class="section"><a href="modules/statement/for__statement.html">for_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="modules/statement/try__catch__statement.html">try_
+ catch_ Statement</a></span></dt>
+<dt><span class="section">throw_</span></dt>
+</dl></dd>
<dt><span class="section">Object</span></dt>
+<dd><dl>
+<dt><span class="section">Construction</span></dt>
+<dt><span class="section">New</span></dt>
+<dt><span class="section">Delete</span></dt>
+<dt><span class="section">Casts</span></dt>
+</dl></dd>
<dt><span class="section">Scope</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="modules/scope/local_variables.html">Local
+ Variables</a></span></dt>
+<dt><span class="section">let</span></dt>
+<dt><span class="section">lambda</span></dt>
+</dl></dd>
<dt><span class="section">Bind</span></dt>
-<dt><span class="section">Container</span></dt>
-<dt><span class="section">Algorithm</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="modules/bind/binding_functions.html">Binding
+ Functions</a></span></dt>
+<dt><span class="section"><a href="modules/bind/binding_member_functions.html">Binding
+ Member Functions</a></span></dt>
+<dt><span class="section"><a href="modules/bind/binding_member_variables.html">Binding
+ Member Variables</a></span></dt>
+<dt><span class="section"><a href="modules/bind/compatibility_with_other_bind_libraries.html">Compatibility
+ with other bind libraries</a></span></dt>
+</dl></dd>
+<dt><span class="section">STL</span></dt>
+<dd><dl>
+<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>
@@ -41,7 +91,7 @@
</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>
+<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="modules/core.html"><img src="../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/algorithm.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/algorithm.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,18 +6,56 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
-<link rel="prev" href="scope.html" title="Scope">
-<link rel="next" href="container.html" title="Container">
+<link rel="prev" href="scope/lambda.html" title="lambda">
+<link rel="next" href="bind/binding_functions.html" title="Binding 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="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>
+<a accesskey="p" href="scope/lambda.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/binding_functions.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
-<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="bind/binding_functions.html">Binding
+ Functions</a></span></dt>
+<dt><span class="section"><a href="bind/binding_member_functions.html">Binding
+ Member Functions</a></span></dt>
+<dt><span class="section"><a href="bind/binding_member_variables.html">Binding
+ Member Variables</a></span></dt>
+<dt><span class="section"><a href="bind/compatibility_with_other_bind_libraries.html">Compatibility
+ with other bind libraries</a></span></dt>
+</dl></div>
+<p>
+ <span class="emphasis"><em>Binding</em></span> is the act of tying together a function to
+ some arguments for deferred (lazy) evaluation. Named <a class="link" href="function.html" title="Function">Lazy
+ functions</a> require a bit of typing. Unlike (unnamed) lambda expressions,
+ we need to write a functor somewhere offline, detached from the call site.
+ If you wish to transform a plain function, member function or member variable
+ to a lambda expression, <code class="computeroutput"><span class="identifier">bind</span></code>
+ is your friend.
+ </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>
+ Take note that binders are monomorphic. Rather than binding functions,
+ the preferred way is to write true generic and polymorphic <a class="link" href="function.html" title="Function">lazy-functions</a>.
+ However, since most of the time we are dealing with adaptation of exisiting
+ code, binders get the job done faster.
+ </p></td></tr>
+</table></div>
+<p>
+ There is a set of overloaded <code class="computeroutput"><span class="identifier">bind</span></code>
+ template functions. Each <code class="computeroutput"><span class="identifier">bind</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+ function generates a suitable binder object, a <a class="link" href="../composite.html" title="Composite">composite</a>.
+ </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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
@@ -28,7 +66,7 @@
</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>
+<a accesskey="p" href="scope/lambda.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/binding_functions.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/binding_functions.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_functions.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binding 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 1. Phoenix 3.0">
+<link rel="up" href="../bind.html" title="Bind">
+<link rel="prev" href="../bind.html" title="Bind">
+<link rel="next" href="binding_member_functions.html" title="Binding Member 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="../bind.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="binding_member_functions.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.bind.binding_functions"></a><a class="link" href="binding_functions.html" title="Binding Functions">Binding
+ Functions</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Example, given a function <code class="computeroutput"><span class="identifier">foo</span></code>:
+ </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">n</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ Here's how the function <code class="computeroutput"><span class="identifier">foo</span></code>
+ may be bound:
+ </p>
+<pre class="programlisting"><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)</span>
+</pre>
+<p>
+ This is now a full-fledged <a class="link" href="../../composite.html" title="Composite">composite</a>
+ that can finally be evaluated by another function call invocation. A
+ second function call will invoke the actual <code class="computeroutput"><span class="identifier">foo</span></code>
+ function. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)(</span><span class="number">4</span><span class="special">);</span>
+</pre>
+<p>
+ will print out "4".
+ </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 © 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="../bind.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="binding_member_functions.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/binding_member_functions.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_member_functions.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binding Member 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 1. Phoenix 3.0">
+<link rel="up" href="../bind.html" title="Bind">
+<link rel="prev" href="binding_functions.html" title="Binding Functions">
+<link rel="next" href="binding_member_variables.html" title="Binding Member Variables">
+</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="binding_functions.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="binding_member_variables.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.bind.binding_member_functions"></a><a class="link" href="binding_member_functions.html" title="Binding Member Functions">Binding
+ Member Functions</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind_member_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Binding member functions can be done similarly. A bound member function
+ takes in a pointer or reference to an object as the first argument. For
+ instance, given:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">xyz</span>
+<span class="special">{</span>
+ <span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="identifier">xyz</span></code>'s <code class="computeroutput"><span class="identifier">foo</span></code>
+ member function can be bound as:
+ </p>
+<pre class="programlisting"><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// obj is an xyz object
+</span></pre>
+<p>
+ Take note that a lazy-member functions expects the first argument to
+ be a pointer or reference to an object. Both the object (reference or
+ pointer) and the arguments can be lazily bound. Examples:
+ </p>
+<pre class="programlisting"><span class="identifier">xyz</span> <span class="identifier">obj</span><span class="special">;</span>
+<span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)</span> <span class="comment">// arg1.foo(arg2)
+</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// obj.foo(arg1)
+</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">,</span> <span class="number">100</span><span class="special">)</span> <span class="comment">// obj.foo(100)
+</span></pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binding_functions.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="binding_member_variables.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/binding_member_variables.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/binding_member_variables.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binding Member Variables</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../bind.html" title="Bind">
+<link rel="prev" href="binding_member_functions.html" title="Binding Member Functions">
+<link rel="next" href="compatibility_with_other_bind_libraries.html" title="Compatibility with other bind libraries">
+</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="binding_member_functions.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="compatibility_with_other_bind_libraries.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.bind.binding_member_variables"></a><a class="link" href="binding_member_variables.html" title="Binding Member Variables">Binding
+ Member Variables</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind_member_variable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Member variables can also be bound much like member functions. Member
+ variables are not functions. Yet, like the <a class="link" href="../core/references.html" title="References"><code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code></a>
+ that acts like a nullary function returning a reference to the data,
+ member variables, when bound, act like a unary function, taking in a
+ pointer or reference to an object as its argument and returning a reference
+ to the bound member variable. For instance, given:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">xyz</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">v</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">v</span></code> can be bound as:
+ </p>
+<pre class="programlisting"><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">)</span> <span class="comment">// obj is an xyz object
+</span></pre>
+<p>
+ As noted, just like the bound member function, a bound member variable
+ also expects the first (and only) argument to be a pointer or reference
+ to an object. The object (reference or pointer) can be lazily bound.
+ Examples:
+ </p>
+<pre class="programlisting"><span class="identifier">xyz</span> <span class="identifier">obj</span><span class="special">;</span>
+<span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// arg1.v
+</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">obj</span><span class="special">)</span> <span class="comment">// obj.v
+</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">xyz</span><span class="special">::</span><span class="identifier">v</span><span class="special">,</span> <span class="identifier">arg1</span><span class="special">)(</span><span class="identifier">obj</span><span class="special">)</span> <span class="special">=</span> <span class="number">4</span> <span class="comment">// obj.v = 4
+</span></pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binding_member_functions.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="compatibility_with_other_bind_libraries.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/compatibility_with_other_bind_libraries.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/bind/compatibility_with_other_bind_libraries.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Compatibility with other bind libraries</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../bind.html" title="Bind">
+<link rel="prev" href="binding_member_variables.html" title="Binding Member Variables">
+<link rel="next" href="../stl.html" title="STL">
+</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="binding_member_variables.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="../stl.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.bind.compatibility_with_other_bind_libraries"></a><a class="link" href="compatibility_with_other_bind_libraries.html" title="Compatibility with other bind libraries">Compatibility
+ with other bind libraries</a>
+</h5></div></div></div>
+<p>
+ <code class="computeroutput"><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">bind</span></code> passes all testcases of the Boost.Bind
+ library. It is therefore completely compatible and interchangable.
+ </p>
+<p>
+ Note that at the current state of the library, you can not mix phoenix
+ and lambda expressions just like that.
+ </p>
+<p>
+ Given the compatibility with Boost.Bind, we also assume compatibility
+ with std::tr1::bind and std::bind from the upcoming C++0x standard
+ </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 © 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="binding_member_variables.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.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="../stl.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Deleted: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/container.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/container.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<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 1. 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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -7,17 +7,37 @@
<link rel="home" href="../../../index.html" title="Chapter 1. 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">
+<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="../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>
+<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="core/values.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
-<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
@@ -28,7 +48,7 @@
</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>
+<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="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/modules/core/arguments.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/arguments.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,210 @@
+<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 1. 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><h5 class="title">
+<a name="phoenix.reference.modules.core.arguments"></a><a class="link" href="arguments.html" title="Arguments">Arguments</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">argument</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ We use an instance of:
+ </p>
+<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">argument</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span>
+</pre>
+<p>
+ to represent the Nth function argument. The argument placeholder acts
+ as an imaginary data-bin where a function argument will be placed.
+ </p>
+<a name="phoenix.reference.modules.core.arguments.predefined_arguments"></a><h3>
+<a name="id784469"></a>
+ <a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.predefined_arguments">Predefined
+ Arguments</a>
+ </h3>
+<p>
+ There are a few predefined instances of <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">argument</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span> <span class="special">></span></code>
+ named <code class="computeroutput"><span class="identifier">arg1</span></code>..<code class="computeroutput"><span class="identifier">argN</span></code>, and its BLL
+ counterpart <code class="computeroutput"><span class="identifier">_1</span></code>..<code class="computeroutput"><span class="identifier">_N</span></code>. (where N is a predefined maximum).
+ </p>
+<p>
+ Here are some sample preset definitions of <code class="computeroutput"><span class="identifier">arg1</span></code>..<code class="computeroutput"><span class="identifier">argN</span></code>
+ </p>
+<pre class="programlisting"><span class="identifier">make_argument</span><span class="special"><</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">0</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span> <span class="identifier">arg1</span> <span class="special">=</span> <span class="special">{};</span>
+<span class="identifier">make_argument</span><span class="special"><</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">1</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span> <span class="identifier">arg2</span> <span class="special">=</span> <span class="special">{};</span>
+<span class="identifier">make_argument</span><span class="special"><</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span> <span class="identifier">arg3</span> <span class="special">=</span> <span class="special">{};</span>
+</pre>
+<p>
+ and its BLL
+ <code class="computeroutput"><span class="identifier">_1</span></code>..<code class="computeroutput"><span class="identifier">_N</span></code>
+ style counterparts:
+ </p>
+<pre class="programlisting"><span class="identifier">make_argument</span><span class="special"><</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">0</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span> <span class="identifier">_1</span> <span class="special">=</span> <span class="special">{};</span>
+<span class="identifier">make_argument</span><span class="special"><</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">1</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span> <span class="identifier">_2</span> <span class="special">=</span> <span class="special">{};</span>
+<span class="identifier">make_argument</span><span class="special"><</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">2</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span> <span class="identifier">_3</span> <span class="special">=</span> <span class="special">{};</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../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_ARG_LIMIT</span></code>,
+ the predefined maximum placeholder index. By default, <code class="computeroutput"><span class="identifier">PHOENIX_ARG_LIMIT</span></code> is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code> (See <a class="link" href="../../actor.html" title="Actor">Actor</a>).
+ </p></td></tr>
+</table></div>
+<p>
+ You see the use make_argument this is a convenience class wrapping the
+ <code class="computeroutput"><span class="identifier">compose</span></code> class:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">N</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_arguemnt</span> <span class="special">:</span> <span class="identifier">compose</span><span class="special"><</span><span class="identifier">argument</span><span class="special">,</span> <span class="identifier">N</span><span class="special">></span> <span class="special">{};</span>
+</pre>
+<p>
+ This scheme of actor creation is used throughout the library and follows
+ the DRY principle. See <a class="link" href="../../composite.html" title="Composite">Composites</a>
+ for more details.
+ </p>
+<a name="phoenix.reference.modules.core.arguments.user_defined_arguments"></a><h3>
+<a name="id785193"></a>
+ <a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.user_defined_arguments">User
+ Defined Arguments</a>
+ </h3>
+<p>
+ When appropriate, you can define your own <code class="computeroutput"><span class="identifier">argument</span></code>
+ names. For example:
+ </p>
+<pre class="programlisting"><span class="identifier">make_argument</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special"><</span><span class="number">0</span><span class="special">></span> <span class="special">></span> <span class="identifier">x</span><span class="special">;</span> <span class="comment">// note zero based index
+</span></pre>
+<p>
+ <code class="computeroutput"><span class="identifier">x</span></code> may now be used as
+ a parameter to a lazy function:
+ </p>
+<pre class="programlisting"><span class="identifier">add</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span>
+</pre>
+<p>
+ which is 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="number">6</span><span class="special">)</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+ When dealing with argument placeholders the question arises wether
+ you can call member functions on an <code class="computeroutput"><span class="identifier">argument</span></code>
+ actor.
+ </p>
+<p>
+ This is possible by supplying a costum <code class="computeroutput"><span class="identifier">actor</span></code>
+ which has a member generator function. See <a class="link" href="../../../advanced/extending/extending_actors.html" title="Extending Actors">Extending
+ Actors</a> for more details.
+ </p>
+</td></tr>
+</table></div>
+<a name="phoenix.reference.modules.core.arguments.evaluating_an_argument"></a><h3>
+<a name="id785420"></a>
+ <a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.evaluating_an_argument">Evaluating
+ an Argument</a>
+ </h3>
+<p>
+ An argument, when evaluated, selects the Nth argument from the those
+ passed in by the client.
+ </p>
+<p>
+ For example:
+ </p>
+<pre class="programlisting"><span class="keyword">char</span> <span class="identifier">c</span> <span class="special">=</span> <span class="char">'A'</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">123</span><span class="special">;</span>
+<span class="keyword">const</span> <span class="keyword">char</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"><<</span> <span class="identifier">arg1</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Get the 1st argument: c
+</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</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"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Get the 1st argument: i
+</span><span class="identifier">cout</span> <span class="special"><<</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"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Get the 2nd argument: s
+</span></pre>
+<p>
+ will print out:
+ </p>
+<pre class="programlisting"><span class="identifier">A</span>
+<span class="number">123</span>
+<span class="identifier">Hello</span> <span class="identifier">World</span>
+</pre>
+<a name="phoenix.reference.modules.core.arguments.extra_arguments"></a><h3>
+<a name="id785749"></a>
+ <a class="link" href="arguments.html#phoenix.reference.modules.core.arguments.extra_arguments">Extra
+ Arguments</a>
+ </h3>
+<p>
+ In C and C++, a function can have extra arguments that are not at all
+ used by the function body itself. These extra arguments are simply ignored.
+ </p>
+<p>
+ Phoenix also allows extra arguments to be passed. For example, recall
+ our original <code class="computeroutput"><span class="identifier">add</span></code> function:
+ </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">arg2</span><span class="special">)</span>
+</pre>
+<p>
+ We know now that partially applying this function results to a function
+ that expects 2 arguments. However, the library is a bit more lenient
+ and allows the caller to supply more arguments than is actually required.
+ Thus, <code class="computeroutput"><span class="identifier">add</span></code> actually allows
+ 2 <span class="emphasis"><em>or more</em></span> arguments. For instance, with:
+ </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">arg2</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="identifier">z</span><span class="special">)</span>
+</pre>
+<p>
+ the third argument <code class="computeroutput"><span class="identifier">z</span></code>
+ is ignored. Taking this further, in-between arguments are also ignored.
+ Example:
+ </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">arg5</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> <span class="identifier">d</span><span class="special">,</span> <span class="identifier">e</span><span class="special">)</span>
+</pre>
+<p>
+ Here, arguments b, c, and d are ignored. The function <code class="computeroutput"><span class="identifier">add</span></code>
+ takes in the first argument (<code class="computeroutput"><span class="identifier">arg1</span></code>)
+ and the fifth argument (<code class="computeroutput"><span class="identifier">arg5</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>
+ There are a few reasons why enforcing strict arity is not desireable.
+ A case in point is the callback function. Typical callback functions
+ provide more information than is actually needed. Lambda functions
+ are often used as callbacks.
+ </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 © 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/modules/core/constant_references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/constant_references.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,46 @@
+<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 1. 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><h5 class="title">
+<a name="phoenix.reference.modules.core.constant_references"></a><a class="link" href="constant_references.html" title="Constant References">Constant
+ References</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Another free function <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code> may also be used. <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">cv</span><span class="special">)</span></code> creates an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&></span></code>
+ object. This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> but when the data to be passed as
+ argument to a function is heavy and expensive to copy by value, the
+ <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 © 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/modules/core/nothing.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/nothing.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,45 @@
+<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 1. Phoenix 3.0">
+<link rel="up" href="../core.html" title="Core">
+<link rel="prev" href="arguments.html" title="Arguments">
+<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="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="../function.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.core.nothing"></a><a class="link" href="nothing.html" title="Nothing">Nothing</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">nothing</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Finally, the <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">null_actor</span><span class="special">></span></code>
+ does nothing; (a "bum", if you will :-). There's a sole <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">null_actor</span><span class="special">></span></code>
+ instance named "nothing". This actor is actually useful in
+ situations where we don't want to do anything. (See <a class="link" href="../statement/for__statement.html" title="for_ Statement">for_
+ Statement</a> for example).
+ </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 © 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="../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/core/references.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/references.html 2010-08-11 10:00:31 EDT (Wed, 11 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 1. 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><h5 class="title">
+<a name="phoenix.reference.modules.core.references"></a><a class="link" href="references.html" title="References">References</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ 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">&</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"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&></span>
+</pre>
+<p>
+ This is similar to <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> above but instead holds a reference
+ to a variable.
+ </p>
+<p>
+ We normally don't instantiate <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">reference</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> objects directly. Instead we use
+ <code class="computeroutput"><span class="identifier">ref</span></code>. For example (where
+ <code class="computeroutput"><span class="identifier">i</span></code> is an <code class="computeroutput"><span class="keyword">int</span></code> variable):
+ </p>
+<pre class="programlisting"><span class="identifier">add_assign</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">),</span> <span class="number">2</span><span class="special">)</span>
+</pre>
+<a name="phoenix.reference.modules.core.references.evaluating_a_reference"></a><h3>
+<a name="id784003"></a>
+ <a class="link" href="references.html#phoenix.reference.modules.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"><<</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">i</span><span class="special">)()</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>
+ 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 © 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/modules/core/values.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/core/values.html 2010-08-11 10:00:31 EDT (Wed, 11 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 1. 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><h5 class="title">
+<a name="phoenix.reference.modules.core.values"></a><a class="link" href="values.html" title="Values">Values</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">value</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></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"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></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"><</span><span class="identifier">value</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></span></code>
+ is implicitly created behind the scenes. This is also equivalent to:
+ </p>
+<pre class="programlisting"><span class="identifier">add</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">val</span><span class="special">(</span><span class="number">6</span><span class="special">))</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
+ generates an <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code>
+ where <code class="computeroutput"><span class="identifier">T</span></code> is the type of
+ <code class="computeroutput"><span class="identifier">x</span></code>. In most cases, there's
+ no need to explicitly use <code class="computeroutput"><span class="identifier">val</span></code>,
+ but, as we'll see later on, there are situations where this is unavoidable.
+ </p>
+<a name="phoenix.reference.modules.core.values.evaluating_a_value"></a><h3>
+<a name="id783543"></a>
+ <a class="link" href="values.html#phoenix.reference.modules.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"><<</span> <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">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 © 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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/function.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,18 +6,129 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
-<link rel="prev" href="core.html" title="Core">
+<link rel="prev" href="core/nothing.html" title="Nothing">
<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>
+<a accesskey="p" href="core/nothing.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">
+<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>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The <code class="computeroutput"><span class="identifier">function</span></code> class template
+ provides a mechanism for implementing lazily evaluated functions. Syntactically,
+ a lazy function looks like an ordinary C/C++ function. The function call
+ looks familiar and feels the same as ordinary C++ functions. However, unlike
+ ordinary functions, the actual function execution is deferred.
+ </p>
+<p>
+ Unlike ordinary function pointers or functor objects that need to be explicitly
+ bound through the bind function (see <a class="link" href="bind.html" title="Bind">Bind</a>),
+ the argument types of these functions are automatically lazily bound.
+ </p>
+<p>
+ In order to create a lazy function, we need to implement a model of the
+ FunctionEval concept. For a function that takes <code class="computeroutput"><span class="identifier">N</span></code>
+ arguments, a model of FunctionEval must provide:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ An <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
+ that takes <code class="computeroutput"><span class="identifier">N</span></code> arguments,
+ and implements the function logic.
+ </li>
+<li class="listitem">
+ A nested metafunction <code class="computeroutput"><span class="identifier">result</span><span class="special"><</span><span class="identifier">Signature</span><span class="special">></span></code> or nested typedef <code class="computeroutput"><span class="identifier">result_type</span></code>,
+ following <a href="http://www.boost.org/doc/libs/1_43_0/libs/utility/utility.htm#result_of" target="_top">Boost.Result
+ Of</a>
+</li>
+</ul></div>
+<p>
+ For example, the following type implements the FunctionEval concept, in
+ order to provide a lazy factorial function:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">factorial_impl</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sig</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">result</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">This</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Arg</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">Arg</span><span class="special">)></span>
+ <span class="special">:</span> <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">Arg</span><span class="special">></span>
+<span class="special">{};</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Arg</span><span class="special">></span>
+ <span class="identifier">Arg</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Arg</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">(</span><span class="identifier">n</span> <span class="special"><=</span> <span class="number">0</span><span class="special">)</span> <span class="special">?</span> <span class="number">1</span> <span class="special">:</span> <span class="identifier">n</span> <span class="special">*</span> <span class="keyword">this</span><span class="special">-></span><span class="keyword">operator</span><span class="special">()(</span><span class="identifier">n</span><span class="special">-</span><span class="number">1</span><span class="special">);</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ (See factorial.cpp)
+ </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>
+ The type of Arg is either a const-reference or non-const-reference (depending
+ on wether your argument to the actor evaluation is a const-ref or non-const-ref).
+ </p></td></tr>
+</table></div>
+<p>
+ Having implemented the <code class="computeroutput"><span class="identifier">factorial_impl</span></code>
+ type, we can declare and instantiate a lazy <code class="computeroutput"><span class="identifier">factorial</span></code>
+ function this way:
+ </p>
+<pre class="programlisting"><span class="identifier">function</span><span class="special"><</span><span class="identifier">factorial_impl</span><span class="special">></span> <span class="identifier">factorial</span><span class="special">;</span>
+</pre>
+<p>
+ Invoking a lazy function such as <code class="computeroutput"><span class="identifier">factorial</span></code>
+ does not immediately execute the function object <code class="computeroutput"><span class="identifier">factorial_impl</span></code>.
+ Instead, an <a class="link" href="../actor.html" title="Actor"><code class="computeroutput"><span class="identifier">actor</span></code></a>
+ object is created and returned to the caller. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">factorial</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
+</pre>
+<p>
+ does nothing more than return an actor. A second function call will invoke
+ the actual factorial function. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">factorial</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)(</span><span class="number">4</span><span class="special">);</span>
+</pre>
+<p>
+ will print out "24".
+ </p>
+<p>
+ Take note that in certain cases (e.g. for function objects with state),
+ an instance of the model of FunctionEval may be passed on to the constructor.
+ Example:
+ </p>
+<pre class="programlisting"><span class="identifier">function</span><span class="special"><</span><span class="identifier">factorial_impl</span><span class="special">></span> <span class="identifier">factorial</span><span class="special">(</span><span class="identifier">ftor</span><span class="special">);</span>
+</pre>
+<p>
+ where ftor is an instance of factorial_impl (this is not necessary in this
+ case as <code class="computeroutput"><span class="identifier">factorial_impl</span></code>
+ does not require any state).
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../images/alert.png" alt="alert"></span> Take care though when using function objects with
+ state because they are often copied repeatedly, and state may change in
+ one of the copies, rather than the original.
+ </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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
@@ -28,7 +139,7 @@
</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>
+<a accesskey="p" href="core/nothing.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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,18 +6,33 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
-<link rel="prev" href="statement.html" title="Statement">
-<link rel="next" href="scope.html" title="Scope">
+<link rel="prev" href="statement/throw_.html" title="throw_">
+<link rel="next" href="object/construction.html" title="Construction">
</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>
+<a accesskey="p" href="statement/throw_.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/construction.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
-<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Construction</span></dt>
+<dt><span class="section">New</span></dt>
+<dt><span class="section">Delete</span></dt>
+<dt><span class="section">Casts</span></dt>
+</dl></div>
+<p>
+ The Object module deals with object construction, destruction and conversion.
+ The module provides <span class="emphasis"><em>"lazy"</em></span> versions of C++'s
+ object constructor, <code class="computeroutput"><span class="keyword">new</span></code>,
+ <code class="computeroutput"><span class="keyword">delete</span></code>, <code class="computeroutput"><span class="keyword">static_cast</span></code>,
+ <code class="computeroutput"><span class="keyword">dynamic_cast</span></code>, <code class="computeroutput"><span class="keyword">const_cast</span></code> and <code class="computeroutput"><span class="keyword">reinterpret_cast</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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
@@ -28,7 +43,7 @@
</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>
+<a accesskey="p" href="statement/throw_.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/construction.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/casts.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/casts.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,64 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>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 1. Phoenix 3.0">
+<link rel="up" href="../object.html" title="Object">
+<link rel="prev" href="delete.html" title="Delete">
+<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="delete.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object.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><h5 class="title">
+<a name="phoenix.reference.modules.object.casts"></a><a class="link" href="casts.html" title="Casts">Casts</a>
+</h5></div></div></div>
+<p>
+ <span class="bold"><strong><span class="emphasis"><em>Lazy casts...</em></span></strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="keyword">static_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="keyword">dynamic_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="keyword">const_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="keyword">reinterpret_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The set of lazy C++ cast template functions provide a way of lazily casting
+ an object of a certain type to another type. The syntax resembles the
+ well known C++ casts. Take note however that the lazy versions have a
+ trailing underscore.
+ </p>
+<pre class="programlisting"><span class="identifier">static_cast_</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lambda_expression</span><span class="special">)</span>
+<span class="identifier">dynamic_cast_</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lambda_expression</span><span class="special">)</span>
+<span class="identifier">const_cast_</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lambda_expression</span><span class="special">)</span>
+<span class="identifier">reinterpret_cast_</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">lambda_expression</span><span class="special">)</span>
+</pre>
+<p>
+ Example:
+ </p>
+<pre class="programlisting"><span class="identifier">static_cast_</span><span class="special"><</span><span class="identifier">Base</span><span class="special">*>(&</span><span class="identifier">arg1</span><span class="special">)</span>
+</pre>
+<p>
+ Static-casts the address of <code class="computeroutput"><span class="identifier">arg1</span></code>
+ to a <code class="computeroutput"><span class="identifier">Base</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 © 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="delete.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object.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/object/construction.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/construction.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Construction</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../object.html" title="Object">
+<link rel="prev" href="../object.html" title="Object">
+<link rel="next" href="new.html" title="New">
+</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="../object.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="new.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.object.construction"></a><a class="link" href="construction.html" title="Construction">Construction</a>
+</h5></div></div></div>
+<p>
+ <span class="bold"><strong><span class="emphasis"><em>Lazy constructors...</em></span></strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="identifier">construct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Lazily construct an object from an arbitrary set of arguments:
+ </p>
+<pre class="programlisting"><span class="identifier">construct</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">ctor_arg1</span><span class="special">,</span> <span class="identifier">ctor_arg2</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">ctor_argN</span><span class="special">);</span>
+</pre>
+<p>
+ where the given parameters are the parameters to the contructor of the
+ object of type T (This implies, that type T is expected to have a constructor
+ with a corresponding set of parameter types.).
+ </p>
+<p>
+ Example:
+ </p>
+<pre class="programlisting"><span class="identifier">construct</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)</span>
+</pre>
+<p>
+ Constructs a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> from <code class="computeroutput"><span class="identifier">arg1</span></code>
+ and <code class="computeroutput"><span class="identifier">arg2</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>
+ The maximum number of actual parameters is limited by the preprocessor
+ constant PHOENIX_COMPOSITE_LIMIT. Note though, that this limit should
+ not be greater than PHOENIX_LIMIT. By default, <code class="computeroutput"><span class="identifier">PHOENIX_COMPOSITE_LIMIT</span></code>
+ is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code>
+ (See <a class="link" href="../../actor.html" title="Actor">Actor</a>).
+ </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 © 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="../object.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="new.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/delete.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/delete.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Delete</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../object.html" title="Object">
+<link rel="prev" href="new.html" title="New">
+<link rel="next" href="casts.html" title="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="new.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object.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="casts.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.object.delete"></a><a class="link" href="delete.html" title="Delete">Delete</a>
+</h5></div></div></div>
+<p>
+ <span class="bold"><strong><span class="emphasis"><em>Lazy delete...</em></span></strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="keyword">delete</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Lazily delete an object, from the heap:
+ </p>
+<pre class="programlisting"><span class="identifier">delete_</span><span class="special">(</span><span class="identifier">arg</span><span class="special">);</span>
+</pre>
+<p>
+ where arg is assumed to be a pointer to an object.
+ </p>
+<p>
+ Example:
+ </p>
+<pre class="programlisting"><span class="identifier">delete_</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="identifier">arg1</span><span class="special">)</span> <span class="comment">// note the spelling of delete_ (with trailing underscore)
+</span></pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="new.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object.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="casts.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/new.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/object/new.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,73 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>New</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../object.html" title="Object">
+<link rel="prev" href="construction.html" title="Construction">
+<link rel="next" href="delete.html" title="Delete">
+</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="construction.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object.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="delete.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.object.new"></a><a class="link" href="new.html" title="New">New</a>
+</h5></div></div></div>
+<p>
+ <span class="bold"><strong><span class="emphasis"><em>Lazy new...</em></span></strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">object</span><span class="special">/</span><span class="keyword">new</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Lazily construct an object, on the heap, from an arbitrary set of arguments:
+ </p>
+<pre class="programlisting"><span class="identifier">new_</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">ctor_arg1</span><span class="special">,</span> <span class="identifier">ctor_arg2</span><span class="special">,</span> <span class="special">...,</span> <span class="identifier">ctor_argN</span><span class="special">);</span>
+</pre>
+<p>
+ where the given parameters are the parameters to the contructor of the
+ object of type T (This implies, that type T is expected to have a constructor
+ with a corresponding set of parameter types.).
+ </p>
+<p>
+ Example:
+ </p>
+<pre class="programlisting"><span class="identifier">new_</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)</span> <span class="comment">// note the spelling of new_ (with trailing underscore)
+</span></pre>
+<p>
+ Creates a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> from <code class="computeroutput"><span class="identifier">arg1</span></code>
+ and <code class="computeroutput"><span class="identifier">arg2</span></code> on the heap.
+ </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>
+ The maximum number of actual parameters is limited by the preprocessor
+ constant PHOENIX_COMPOSITE_LIMIT. Note though, that this limit should
+ not be greater than PHOENIX_LIMIT. By default, <code class="computeroutput"><span class="identifier">PHOENIX_COMPOSITE_LIMIT</span></code>
+ is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code>
+ (See <a class="link" href="../../actor.html" title="Actor">Actor</a>).
+ </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 © 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="construction.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object.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="delete.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/operator.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -15,9 +15,204 @@
<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">
+<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>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="keyword">operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ This facility provides a mechanism for lazily evaluating operators. Syntactically,
+ a lazy operator looks and feels like an ordinary C/C++ infix, prefix or
+ postfix operator. The operator application looks the same. However, unlike
+ ordinary operators, the actual operator execution is deferred. Samples:
+ </p>
+<pre class="programlisting"><span class="identifier">arg1</span> <span class="special">+</span> <span class="identifier">arg2</span>
+<span class="number">1</span> <span class="special">+</span> <span class="identifier">arg1</span> <span class="special">*</span> <span class="identifier">arg2</span>
+<span class="number">1</span> <span class="special">/</span> <span class="special">-</span><span class="identifier">arg1</span>
+<span class="identifier">arg1</span> <span class="special"><</span> <span class="number">150</span>
+</pre>
+<p>
+ We have seen the lazy operators in action (see <a class="link" href="../../starter_kit/lazy_operators.html" title="Lazy Operators">Quick
+ Start</a>). Let's go back and examine them a little bit further:
+ </p>
+<pre class="programlisting"><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)</span>
+</pre>
+<p>
+ Through operator overloading, 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> actually
+ generates an actor. This actor object is passed on to STL's <code class="computeroutput"><span class="identifier">find_if</span></code> function. From the viewpoint
+ of STL, the composite is simply a function object expecting a single argument
+ of the containers value_type. For each element in <code class="computeroutput"><span class="identifier">c</span></code>,
+ the element is passed on as an argument <code class="computeroutput"><span class="identifier">arg1</span></code>
+ to the actor (function object). The actor checks if this is an odd value
+ based on 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> where
+ arg1 is replaced by the container's element.
+ </p>
+<p>
+ Like lazy functions (see <a class="link" href="function.html" title="Function"><code class="computeroutput"><span class="identifier">function</span></code></a>), lazy operators are
+ not immediately executed when invoked. Instead, an actor (see <a class="link" href="../actor.html" title="Actor">actor</a>)
+ object is created and returned to the caller. Example:
+ </p>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">arg1</span> <span class="special">+</span> <span class="identifier">arg2</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">arg3</span>
+</pre>
+<p>
+ does nothing more than return an actor. A second function call will evaluate
+ the actual operators. Example:
+ </p>
+<pre class="programlisting"><span class="identifier">cout</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="special">*</span> <span class="identifier">arg3</span><span class="special">)(</span><span class="number">4</span><span class="special">,</span> <span class="number">5</span><span class="special">,</span> <span class="number">6</span><span class="special">);</span>
+</pre>
+<p>
+ will print out "54".
+ </p>
+<p>
+ Operator expressions are lazily evaluated following four simple rules:
+ </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ A binary operator, except <code class="computeroutput"><span class="special">->*</span></code>
+ will be lazily evaluated when <span class="emphasis"><em>at least</em></span> one of its
+ operands is an actor object (see <a class="link" href="../actor.html" title="Actor">actors</a>).
+ </li>
+<li class="listitem">
+ Unary operators are lazily evaluted if their argument is an actor object.
+ </li>
+<li class="listitem">
+ Operator <code class="computeroutput"><span class="special">->*</span></code> is lazily
+ evaluted if the left hand argument is an actor object.
+ </li>
+<li class="listitem">
+ The result of a lazy operator is an actor object that can in turn allow
+ the applications of rules 1, 2 and 3.
+ </li>
+</ol></div>
+<p>
+ For example, to check the following expression is lazily evaluated:
+ </p>
+<pre class="programlisting"><span class="special">-(</span><span class="identifier">arg1</span> <span class="special">+</span> <span class="number">3</span> <span class="special">+</span> <span class="number">6</span><span class="special">)</span>
+</pre>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Following rule 1, <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">+</span> <span class="number">3</span></code> is
+ lazily evaluated since <code class="computeroutput"><span class="identifier">arg1</span></code>
+ is an actor (see <a class="link" href="core/arguments.html" title="Arguments">Arguments</a>).
+ </li>
+<li class="listitem">
+ The result of this <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">+</span> <span class="number">3</span></code> expression
+ is an actor object, following rule 4.
+ </li>
+<li class="listitem">
+ Continuing, <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">+</span>
+ <span class="number">3</span> <span class="special">+</span> <span class="number">6</span></code> is again lazily evaluated. Rule 2.
+ </li>
+<li class="listitem">
+ By rule 4 again, the result of <code class="computeroutput"><span class="identifier">arg1</span>
+ <span class="special">+</span> <span class="number">3</span> <span class="special">+</span> <span class="number">6</span></code> is
+ an actor object.
+ </li>
+<li class="listitem">
+ As <code class="computeroutput"><span class="identifier">arg1</span> <span class="special">+</span>
+ <span class="number">3</span> <span class="special">+</span> <span class="number">6</span></code> is an actor, <code class="computeroutput"><span class="special">-(</span><span class="identifier">arg1</span> <span class="special">+</span> <span class="number">3</span> <span class="special">+</span> <span class="number">6</span><span class="special">)</span></code> is lazily evaluated. Rule 2.
+ </li>
+</ol></div>
+<p>
+ Lazy-operator application is highly contagious. In most cases, a single
+ <code class="computeroutput"><span class="identifier">argN</span></code> actor infects all
+ its immediate neighbors within a group (first level or parenthesized expression).
+ </p>
+<p>
+ Note that at least one operand of any operator must be a valid actor for
+ lazy evaluation to take effect. To force lazy evaluation of an ordinary
+ expression, we can use <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>,
+ <code class="computeroutput"><span class="identifier">val</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> or
+ <code class="computeroutput"><span class="identifier">cref</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> to
+ transform an operand into a valid actor object (see <a class="link" href="core.html" title="Core">Core</a>.
+ For example:
+ </p>
+<pre class="programlisting"><span class="number">1</span> <span class="special"><<</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Immediately evaluated
+</span><span class="identifier">val</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Lazily evaluated
+</span></pre>
+<a name="phoenix.reference.modules.operator.supported_operators"></a><h3>
+<a name="id788064"></a>
+ <a class="link" href="operator.html#phoenix.reference.modules.operator.supported_operators">Supported
+ operators</a>
+ </h3>
+<a name="phoenix.reference.modules.operator.unary_operators"></a><h4>
+<a name="id788084"></a>
+ <a class="link" href="operator.html#phoenix.reference.modules.operator.unary_operators">Unary
+ operators</a>
+ </h4>
+<pre class="programlisting"><span class="identifier">prefix</span><span class="special">:</span> <span class="special">~,</span> <span class="special">!,</span> <span class="special">-,</span> <span class="special">+,</span> <span class="special">++,</span> <span class="special">--,</span> <span class="special">&</span> <span class="special">(</span><span class="identifier">reference</span><span class="special">),</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">dereference</span><span class="special">)</span>
+<span class="identifier">postfix</span><span class="special">:</span> <span class="special">++,</span> <span class="special">--</span>
+</pre>
+<a name="phoenix.reference.modules.operator.binary_operators"></a><h4>
+<a name="id788214"></a>
+ <a class="link" href="operator.html#phoenix.reference.modules.operator.binary_operators">Binary
+ operators</a>
+ </h4>
+<pre class="programlisting"><span class="special">=,</span> <span class="special">[],</span> <span class="special">+=,</span> <span class="special">-=,</span> <span class="special">*=,</span> <span class="special">/=,</span> <span class="special">%=,</span> <span class="special">&=,</span> <span class="special">|=,</span> <span class="special">^=,</span> <span class="special"><<=,</span> <span class="special">>>=</span>
+<span class="special">+,</span> <span class="special">-,</span> <span class="special">*,</span> <span class="special">/,</span> <span class="special">%,</span> <span class="special">&,</span> <span class="special">|,</span> <span class="special">^,</span> <span class="special"><<,</span> <span class="special">>></span>
+<span class="special">==,</span> <span class="special">!=,</span> <span class="special"><,</span> <span class="special">>,</span> <span class="special"><=,</span> <span class="special">>=</span>
+<span class="special">&&,</span> <span class="special">||,</span> <span class="special">->*</span>
+</pre>
+<a name="phoenix.reference.modules.operator.ternary_operator"></a><h4>
+<a name="id788415"></a>
+ <a class="link" href="operator.html#phoenix.reference.modules.operator.ternary_operator">Ternary
+ operator</a>
+ </h4>
+<pre class="programlisting"><span class="identifier">if_else</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span>
+</pre>
+<p>
+ The ternary operator deserves special mention. Since C++ does not allow
+ us to overload the conditional expression: <code class="computeroutput"><span class="identifier">c</span>
+ <span class="special">?</span> <span class="identifier">a</span>
+ <span class="special">:</span> <span class="identifier">b</span></code>,
+ the if_else pseudo function is provided for this purpose. The behavior
+ is identical, albeit in a lazy manner.
+ </p>
+<a name="phoenix.reference.modules.operator.member_pointer_operator"></a><h4>
+<a name="id788516"></a>
+ <a class="link" href="operator.html#phoenix.reference.modules.operator.member_pointer_operator">Member
+ pointer operator</a>
+ </h4>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">->*</span><span class="identifier">member_object_pointer</span>
+<span class="identifier">a</span><span class="special">->*</span><span class="identifier">member_function_pointer</span>
+</pre>
+<p>
+ The left hand side of the member pointer operator must be an actor returning
+ a pointer type. The right hand side of the member pointer operator may
+ be either a pointer to member object or pointer to member function.
+ </p>
+<p>
+ If the right hand side is a member object pointer, the result is an actor
+ which, when evaluated, returns a reference to that member. For example:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">member</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="identifier">A</span><span class="special">*</span> <span class="identifier">a</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">A</span><span class="special">;</span>
+<span class="special">...</span>
+
+<span class="special">(</span><span class="identifier">arg1</span><span class="special">->*&</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">member</span><span class="special">)(</span><span class="identifier">a</span><span class="special">);</span> <span class="comment">// returns member a->member
+</span></pre>
+<p>
+ If the right hand side is a member function pointer, the result is an actor
+ which, when invoked, calls the specified member function. For example:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">func</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
+<span class="special">};</span>
+
+<span class="identifier">A</span><span class="special">*</span> <span class="identifier">a</span> <span class="special">=</span> <span class="keyword">new</span> <span class="identifier">A</span><span class="special">;</span>
+<span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+
+<span class="special">(</span><span class="identifier">arg1</span><span class="special">->*&</span><span class="identifier">A</span><span class="special">::</span><span class="identifier">func</span><span class="special">)(</span><span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">i</span><span class="special">);</span> <span class="comment">// returns a->func(i)
+</span></pre>
+</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -6,18 +6,45 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
-<link rel="prev" href="object.html" title="Object">
-<link rel="next" href="bind.html" title="Bind">
+<link rel="prev" href="object/casts.html" title="Casts">
+<link rel="next" href="scope/local_variables.html" title="Local Variables">
</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>
+<a accesskey="p" href="object/casts.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/local_variables.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
-<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="scope/local_variables.html">Local
+ Variables</a></span></dt>
+<dt><span class="section">let</span></dt>
+<dt><span class="section">lambda</span></dt>
+</dl></div>
+<p>
+ Up until now, the most basic ingredient is missing: creation of and access
+ to local variables in the stack. When recursion comes into play, you will
+ soon realize the need to have true local variables. It may seem that we
+ do not need this at all since an unnamed lambda function cannot call itself
+ anyway; at least not directly. With some sort of arrangement, situations
+ will arise where a lambda function becomes recursive. A typical situation
+ occurs when we store a lambda function in a Boost.Function,
+ essentially naming the unnamed lambda.
+ </p>
+<p>
+ There will also be situations where a lambda function gets passed as an
+ argument to another function. This is a more common situation. In this
+ case, the lambda function assumes a new scope; new arguments and possibly
+ new local variables.
+ </p>
+<p>
+ This section deals with local variables and nested lambda scopes.
+ </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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
@@ -28,7 +55,7 @@
</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>
+<a accesskey="p" href="object/casts.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/local_variables.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/lambda.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/lambda.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,188 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>lambda</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../scope.html" title="Scope">
+<link rel="prev" href="let.html" title="let">
+<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="let.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../scope.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><h5 class="title">
+<a name="phoenix.reference.modules.scope.lambda"></a><a class="link" href="lambda.html" title="lambda">lambda</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">scope</span><span class="special">/</span><span class="identifier">lambda</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ A lot of times, you'd want to write a lazy function that accepts one
+ or more functions (higher order functions). STL algorithms come to mind,
+ for example. Consider a lazy version of <code class="computeroutput"><span class="identifier">stl</span><span class="special">::</span><span class="identifier">for_each</span></code>:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">for_each_impl</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">result</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
+ <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">C</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">f</span><span class="special">);</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="identifier">function</span><span class="special"><</span><span class="identifier">for_each_impl</span><span class="special">></span> <span class="keyword">const</span> <span class="identifier">for_each</span> <span class="special">=</span> <span class="identifier">for_each_impl</span><span class="special">();</span>
+</pre>
+<p>
+ Notice that the function accepts another function, <code class="computeroutput"><span class="identifier">f</span></code>
+ as an argument. The scope of this function, <code class="computeroutput"><span class="identifier">f</span></code>,
+ is limited within the <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>. When <code class="computeroutput"><span class="identifier">f</span></code>
+ is called inside <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span></code>,
+ it exists in a new scope, along with new arguments and, possibly, local
+ variables. This new scope is not at all related to the outer scopes beyond
+ the <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>.
+ </p>
+<p>
+ Simple syntax:
+ </p>
+<pre class="programlisting"><span class="identifier">lambda</span>
+<span class="special">[</span>
+ <span class="identifier">lambda</span><span class="special">-</span><span class="identifier">body</span>
+<span class="special">]</span>
+</pre>
+<p>
+ Like <code class="computeroutput"><span class="identifier">let</span></code>, local variables
+ may be declared, allowing 1..N local variable declarations (where N ==
+ <code class="computeroutput"><span class="identifier">PHOENIX_LOCAL_LIMIT</span></code>):
+ </p>
+<pre class="programlisting"><span class="identifier">lambda</span><span class="special">(</span><span class="identifier">local</span><span class="special">-</span><span class="identifier">declarations</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">lambda</span><span class="special">-</span><span class="identifier">body</span>
+<span class="special">]</span>
+</pre>
+<p>
+ The same restrictions apply with regard to scope and visibility. The
+ RHS (right hand side lambda-expression) of each local-declaration cannot
+ refer to any LHS local-id. The local-ids are not in scope yet; they will
+ be in scope only in the lambda-body:
+ </p>
+<pre class="programlisting"><span class="identifier">lambda</span><span class="special">(</span>
+ <span class="identifier">_a</span> <span class="special">=</span> <span class="number">1</span>
+ <span class="special">,</span> <span class="identifier">_b</span> <span class="special">=</span> <span class="identifier">_a</span> <span class="comment">// Error: _a is not in scope yet
+</span><span class="special">)</span>
+</pre>
+<p>
+ See <a class="link" href="let.html#phoenix.reference.modules.scope.let.visibility"><code class="computeroutput"><span class="identifier">let</span></code> Visibility</a> for more information.
+ </p>
+<p>
+ Example: Using our lazy <code class="computeroutput"><span class="identifier">for_each</span></code>
+ let's print all the elements in a container:
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">lambda</span><span class="special">[</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span><span class="special">])</span>
+</pre>
+<p>
+ As far as the arguments are concerned (arg1..argN), the scope in which
+ the lambda-body exists is totally new. The left <code class="computeroutput"><span class="identifier">arg1</span></code>
+ refers to the argument passed to <code class="computeroutput"><span class="identifier">for_each</span></code>
+ (a container). The right <code class="computeroutput"><span class="identifier">arg1</span></code>
+ refers to the argument passed by <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span></code>
+ when we finally get to call <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code> in our <code class="computeroutput"><span class="identifier">for_each_impl</span></code>
+ above (a container element).
+ </p>
+<p>
+ Yet, we may wish to get information from outer scopes. While we do not
+ have access to arguments in outer scopes, what we still have is access
+ to local variables from outer scopes. We may only be able to pass argument
+ related information from outer <code class="computeroutput"><span class="identifier">lambda</span></code>
+ scopes through the local variables.
+ </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>
+ This is a crucial difference between <code class="computeroutput"><span class="identifier">let</span></code>
+ and <code class="computeroutput"><span class="identifier">lambda</span></code>: <code class="computeroutput"><span class="identifier">let</span></code> does not introduce new arguments;
+ <code class="computeroutput"><span class="identifier">lambda</span></code> does.
+ </p></td></tr>
+</table></div>
+<p>
+ Another example: Using our lazy <code class="computeroutput"><span class="identifier">for_each</span></code>,
+ and a lazy <code class="computeroutput"><span class="identifier">push_back</span></code>:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">push_back_impl</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">result</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+ <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">C</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="identifier">c</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="identifier">function</span><span class="special"><</span><span class="identifier">push_back_impl</span><span class="special">></span> <span class="keyword">const</span> <span class="identifier">push_back</span> <span class="special">=</span> <span class="identifier">push_back_impl</span><span class="special">();</span>
+</pre>
+<p>
+ write a lambda expression that accepts:
+ </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ a 2-dimensional container (e.g. <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="special">></span></code>)
+ </li>
+<li class="listitem">
+ a container element (e.g. <code class="computeroutput"><span class="keyword">int</span></code>)
+ </li>
+</ol></div>
+<p>
+ and pushes-back the element to each of the <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></code>.
+ </p>
+<p>
+ Solution:
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span>
+ <span class="identifier">lambda</span><span class="special">(</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">arg2</span><span class="special">)</span>
+ <span class="special">[</span>
+ <span class="identifier">push_back</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">_a</span><span class="special">)</span>
+ <span class="special">]</span>
+<span class="special">)</span>
+</pre>
+<p>
+ Since we do not have access to the arguments of the outer scopes beyond
+ the lambda-body, we introduce a local variable <code class="computeroutput"><span class="identifier">_a</span></code>
+ that captures the second outer argument: <code class="computeroutput"><span class="identifier">arg2</span></code>.
+ Hence: _a = arg2. This local variable is visible inside the lambda scope.
+ </p>
+<p>
+ (See lambda.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 © 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="let.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../scope.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/scope/let.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/let.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,177 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>let</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../scope.html" title="Scope">
+<link rel="prev" href="local_variables.html" title="Local Variables">
+<link rel="next" href="lambda.html" title="lambda">
+</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="local_variables.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../scope.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="lambda.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.scope.let"></a><a class="link" href="let.html" title="let">let</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">scope</span><span class="special">/</span><span class="identifier">let</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ You declare local variables using the syntax:
+ </p>
+<pre class="programlisting"><span class="identifier">let</span><span class="special">(</span><span class="identifier">local</span><span class="special">-</span><span class="identifier">declarations</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">let</span><span class="special">-</span><span class="identifier">body</span>
+<span class="special">]</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="identifier">let</span></code> allows 1..N local
+ variable declarations (where N == <code class="computeroutput"><span class="identifier">PHOENIX_LOCAL_LIMIT</span></code>).
+ Each declaration follows the form:
+ </p>
+<pre class="programlisting"><span class="identifier">local</span><span class="special">-</span><span class="identifier">id</span> <span class="special">=</span> <span class="identifier">lambda</span><span class="special">-</span><span class="identifier">expression</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>
+ You can set <code class="computeroutput"><span class="identifier">PHOENIX_LOCAL_LIMIT</span></code>,
+ the predefined maximum local variable declarations in a let expression.
+ By default, <code class="computeroutput"><span class="identifier">PHOENIX_LOCAL_LIMIT</span></code>
+ is set to <code class="computeroutput"><span class="identifier">PHOENIX_LIMIT</span></code>.
+ </p></td></tr>
+</table></div>
+<p>
+ Example:
+ </p>
+<pre class="programlisting"><span class="identifier">let</span><span class="special">(</span><span class="identifier">_a</span> <span class="special">=</span> <span class="number">123</span><span class="special">,</span> <span class="identifier">_b</span> <span class="special">=</span> <span class="number">456</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">_a</span> <span class="special">+</span> <span class="identifier">_b</span>
+<span class="special">]</span>
+</pre>
+<p>
+ <span class="bold"><strong>Reference Preservation</strong></span>
+ </p>
+<p>
+ The type of the local variable assumes the type of the lambda- expression.
+ Type deduction is reference preserving. For example:
+ </p>
+<pre class="programlisting"><span class="identifier">let</span><span class="special">(</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">_b</span> <span class="special">=</span> <span class="number">456</span><span class="special">)</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="identifier">_a</span></code> assumes the type of
+ <code class="computeroutput"><span class="identifier">arg1</span></code>: a reference to
+ an argument, while <code class="computeroutput"><span class="identifier">_b</span></code>
+ has type <code class="computeroutput"><span class="keyword">int</span></code>.
+ </p>
+<p>
+ Consider this:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
+
+<span class="identifier">let</span><span class="special">(</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">arg1</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="special">--</span><span class="identifier">_a</span> <span class="special"><<</span> <span class="char">' '</span>
+<span class="special">]</span>
+<span class="special">(</span><span class="identifier">i</span><span class="special">);</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">i</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ the output of above is : 0 0
+ </p>
+<p>
+ While with this:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
+
+<span class="identifier">let</span><span class="special">(</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">val</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">))</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="special">--</span><span class="identifier">_a</span> <span class="special"><<</span> <span class="char">' '</span>
+<span class="special">]</span>
+<span class="special">(</span><span class="identifier">i</span><span class="special">);</span>
+
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">i</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+ the output is : 0 1
+ </p>
+<p>
+ Reference preservation is necessary because we need to have L-value access
+ to outer lambda-scopes (especially the arguments). <code class="computeroutput"><span class="identifier">arg</span></code>s
+ and <code class="computeroutput"><span class="identifier">ref</span></code>s are L-values.
+ <code class="computeroutput"><span class="identifier">val</span></code>s are R-values.
+ </p>
+<a name="phoenix.reference.modules.scope.let.visibility"></a><p>
+ <span class="bold"><strong>Visibility</strong></span>
+ </p>
+<p>
+ The scope and lifetimes of the local variables is limited within the
+ let-body. <code class="computeroutput"><span class="identifier">let</span></code> blocks
+ can be nested. A local variable may hide an outer local variable. For
+ example:
+ </p>
+<pre class="programlisting"><span class="identifier">let</span><span class="special">(</span><span class="identifier">_x</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="string">", World"</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="comment">// _x here is an int: 1
+</span>
+ <span class="identifier">let</span><span class="special">(</span><span class="identifier">_x</span> <span class="special">=</span> <span class="string">"Hello"</span><span class="special">)</span> <span class="comment">// hides the outer _x
+</span> <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">_x</span> <span class="special"><<</span> <span class="identifier">_y</span> <span class="comment">// prints "Hello, World"
+</span> <span class="special">]</span>
+<span class="special">]</span>
+</pre>
+<p>
+ The RHS (right hand side lambda-expression) of each local-declaration
+ cannot refer to any LHS local-id. At this point, the local-ids are not
+ in scope yet; they will only be in scope in the let-body. The code below
+ is in error:
+ </p>
+<pre class="programlisting"><span class="identifier">let</span><span class="special">(</span>
+ <span class="identifier">_a</span> <span class="special">=</span> <span class="number">1</span>
+ <span class="special">,</span> <span class="identifier">_b</span> <span class="special">=</span> <span class="identifier">_a</span> <span class="comment">// Error: _a is not in scope yet
+</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="comment">// _a and _b's scope starts here
+</span> <span class="comment">/*. body .*/</span>
+<span class="special">]</span>
+</pre>
+<p>
+ However, if an outer let scope is available, this will be searched. Since
+ the scope of the RHS of a local-declaration is the outer scope enclosing
+ the let, the RHS of a local-declaration can refer to a local variable
+ of an outer scope:
+ </p>
+<pre class="programlisting"><span class="identifier">let</span><span class="special">(</span><span class="identifier">_a</span> <span class="special">=</span> <span class="number">1</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">let</span><span class="special">(</span>
+ <span class="identifier">_a</span> <span class="special">=</span> <span class="number">1</span>
+ <span class="special">,</span> <span class="identifier">_b</span> <span class="special">=</span> <span class="identifier">_a</span> <span class="comment">// Ok. _a refers to the outer _a
+</span> <span class="special">)</span>
+ <span class="special">[</span>
+ <span class="comment">/*. body .*/</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 © 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="local_variables.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../scope.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="lambda.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/local_variables.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/scope/local_variables.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Local Variables</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../scope.html" title="Scope">
+<link rel="prev" href="../scope.html" title="Scope">
+<link rel="next" href="let.html" title="let">
+</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="../scope.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="let.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.scope.local_variables"></a><a class="link" href="local_variables.html" title="Local Variables">Local
+ Variables</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">scope</span><span class="special">/</span><span class="identifier">local_variable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ We use an instance of:
+ </p>
+<pre class="programlisting"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">local_variable</span><span class="special"><</span><span class="identifier">Key</span><span class="special">></span> <span class="special">></span>
+</pre>
+<p>
+ to represent a local variable. The local variable acts as an imaginary
+ data-bin where a local, stack based data will be placed. <code class="computeroutput"><span class="identifier">Key</span></code> is an arbitrary type that is used
+ to identify the local variable. Example:
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">size_key</span><span class="special">;</span>
+<span class="identifier">actor</span><span class="special"><</span><span class="identifier">local_variable</span><span class="special"><</span><span class="identifier">size_key</span><span class="special">></span> <span class="special">></span> <span class="identifier">size</span><span class="special">;</span>
+</pre>
+<p>
+ <span class="bold"><strong>Predefined Local Variables</strong></span>
+ </p>
+<p>
+ There are a few predefined instances of <code class="computeroutput"><span class="identifier">actor</span><span class="special"><</span><span class="identifier">local_variable</span><span class="special"><</span><span class="identifier">Key</span><span class="special">></span> <span class="special">></span></code>
+ named <code class="computeroutput"><span class="identifier">_a</span></code>..<code class="computeroutput"><span class="identifier">_z</span></code> that you can already use. To make
+ use of them, simply use the <code class="computeroutput"><span class="keyword">namespace</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">local_names</span></code>:
+ </p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">local_names</span><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 © 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="../scope.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="let.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -7,17 +7,92 @@
<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
<link rel="up" href="../modules.html" title="Modules">
<link rel="prev" href="operator.html" title="Operator">
-<link rel="next" href="object.html" title="Object">
+<link rel="next" href="statement/block_statement.html" title="Block Statement">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="operator.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="object.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="operator.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement/block_statement.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
-<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<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>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="statement/block_statement.html">Block
+ Statement</a></span></dt>
+<dt><span class="section"><a href="statement/if__statement.html">if_
+ Statement</a></span></dt>
+<dt><span class="section">if_else_ Statement</span></dt>
+<dt><span class="section"><a href="statement/switch__statement.html">switch_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="statement/while__statement.html">while_
+ Statement</a></span></dt>
+<dt><span class="section">do_while_ Statement</span></dt>
+<dt><span class="section"><a href="statement/for__statement.html">for_
+ Statement</a></span></dt>
+<dt><span class="section"><a href="statement/try__catch__statement.html">try_
+ catch_ Statement</a></span></dt>
+<dt><span class="section">throw_</span></dt>
+</dl></div>
+<p>
+ <span class="bold"><strong><span class="emphasis"><em>Lazy statements...</em></span></strong></span>
+ </p>
+<p>
+ The primitives and composite building blocks presented so far are sufficiently
+ powerful to construct quite elaborate structures. We have presented lazy-
+ functions and lazy-operators. How about lazy-statements? First, an appetizer:
+ </p>
+<p>
+ Print all odd-numbered contents of an STL container using <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span></code> (all_odds.cpp):
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="identifier">if_</span><span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="char">' '</span>
+ <span class="special">]</span>
+<span class="special">);</span>
+</pre>
+<p>
+ Huh? Is that valid C++? Read on...
+ </p>
+<p>
+ Yes, it is valid C++. The sample code above is as close as you can get
+ to the syntax of C++. This stylized C++ syntax differs from actual C++
+ code. First, the <code class="computeroutput"><span class="keyword">if</span></code> has a
+ trailing underscore. Second, the block uses square brackets instead of
+ the familiar curly braces {}.
+ </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>
+ <span class="bold"><strong>C++ in C++?</strong></span>
+ </p>
+<p>
+ In as much as Spirit
+ attempts to mimic EBNF in C++, Phoenix attempts to mimic C++ in C++!!!
+ </p>
+</td></tr>
+</table></div>
+<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>
+ Unlike lazy functions and lazy operators, lazy statements always return
+ void.
+ </p></td></tr>
+</table></div>
+<p>
+ Here are more examples with annotations. The code almost speaks for itself.
+ </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 © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
@@ -28,7 +103,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="operator.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="object.html"><img src="../../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="operator.html"><img src="../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../images/home.png" alt="Home"></a><a accesskey="n" href="statement/block_statement.html"><img src="../../../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___do_while_____statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>do_while_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="while__statement.html" title="while_ Statement">
+<link rel="next" href="for__statement.html" title="for_ 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="while__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="for__statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.___do_while_____statement"></a><a class="link" href="___do_while_____statement.html" title="do_while_ Statement">do_while_ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="identifier">do_while</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The syntax is:
+ </p>
+<pre class="programlisting"><span class="identifier">do_</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">while_</span><span class="special">(</span><span class="identifier">conditional_expression</span><span class="special">)</span>
+</pre>
+<p>
+ Again, take note that <code class="computeroutput"><span class="keyword">while</span></code>
+ has a leading dot and a trailing underscore: <code class="computeroutput"><span class="special">.</span><span class="identifier">while_</span></code>
+ </p>
+<p>
+ Example: This code is almost the same as the previous example above with
+ a slight twist in logic.
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="special">(</span>
+ <span class="identifier">do_</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">", "</span>
+ <span class="special">]</span>
+ <span class="special">.</span><span class="identifier">while_</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">--),</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"\n"</span><span class="special">)</span>
+ <span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ <code class="computeroutput"><span class="identifier">do_</span></code> is one example
+ of a customized actor. See <a class="link" href="../../../advanced/extending/extending_actors.html" title="Extending Actors">Extending
+ Actors</a> for more details
+ </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 © 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="while__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="for__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/statement/___if_else_____statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/___if_else_____statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>if_else_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="if__statement.html" title="if_ Statement">
+<link rel="next" href="switch__statement.html" title="switch_ 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="if__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="switch__statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.___if_else_____statement"></a><a class="link" href="___if_else_____statement.html" title="if_else_ Statement">if_else_ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="keyword">if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The syntax is
+ </p>
+<pre class="programlisting"><span class="identifier">if_</span><span class="special">(</span><span class="identifier">conditional_expression</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">else_</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+</pre>
+<p>
+ Take note that <code class="computeroutput"><span class="keyword">else</span></code> has
+ a leading dot and a trailing underscore: <code class="computeroutput"><span class="special">.</span><span class="identifier">else_</span></code>
+ </p>
+<p>
+ Example: This code prints out all the elements and appends <code class="computeroutput"><span class="string">" > 5"</span></code>, <code class="computeroutput"><span class="string">"
+ == 5"</span></code> or <code class="computeroutput"><span class="string">" <
+ 5"</span></code> depending on the element's actual value:
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="identifier">if_</span><span class="special">(</span><span class="identifier">arg1</span> <span class="special">></span> <span class="number">5</span><span class="special">)</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">" > 5\n"</span>
+ <span class="special">]</span>
+ <span class="special">.</span><span class="identifier">else_</span>
+ <span class="special">[</span>
+ <span class="identifier">if_</span><span class="special">(</span><span class="identifier">arg1</span> <span class="special">==</span> <span class="number">5</span><span class="special">)</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">" == 5\n"</span>
+ <span class="special">]</span>
+ <span class="special">.</span><span class="identifier">else_</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">" < 5\n"</span>
+ <span class="special">]</span>
+ <span class="special">]</span>
+<span class="special">);</span>
+</pre>
+<p>
+ Notice how the <code class="computeroutput"><span class="identifier">if_else_</span></code>
+ statement is nested.
+ </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>
+ <code class="computeroutput"><span class="identifier">if_</span></code> is one example
+ of a customized actor. See <a class="link" href="../../../advanced/extending/extending_actors.html" title="Extending Actors">Extending
+ Actors</a> for more details
+ </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 © 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="if__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="switch__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/statement/block_statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/block_statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Block 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="../statement.html" title="Statement">
+<link rel="next" href="if__statement.html" title="if_ 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="../statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="if__statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.block_statement"></a><a class="link" href="block_statement.html" title="Block Statement">Block
+ Statement</a>
+</h5></div></div></div>
+<p>
+ Syntax:
+ </p>
+<pre class="programlisting"><span class="identifier">statement</span><span class="special">,</span>
+<span class="identifier">statement</span><span class="special">,</span>
+<span class="special">....</span>
+<span class="identifier">statement</span>
+</pre>
+<p>
+ Basically, these are comma separated statements. Take note that unlike
+ the C/C++ semicolon, the comma is a separator put <span class="bold"><strong>in-between</strong></span>
+ statements. This is like Pascal's semicolon separator, rather than C/C++'s
+ semicolon terminator. For example:
+ </p>
+<pre class="programlisting"><span class="identifier">statement</span><span class="special">,</span>
+<span class="identifier">statement</span><span class="special">,</span>
+<span class="identifier">statement</span><span class="special">,</span> <span class="comment">// ERROR!
+</span></pre>
+<p>
+ Is an error. The last statement should not have a comma. Block statements
+ can be grouped using the parentheses. Again, the last statement in a
+ group should not have a trailing comma.
+ </p>
+<pre class="programlisting"><span class="identifier">statement</span><span class="special">,</span>
+<span class="identifier">statement</span><span class="special">,</span>
+<span class="special">(</span>
+ <span class="identifier">statement</span><span class="special">,</span>
+ <span class="identifier">statement</span>
+<span class="special">),</span>
+<span class="identifier">statement</span>
+</pre>
+<p>
+ Outside the square brackets, block statements should be grouped. For
+ example:
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="special">(</span>
+ <span class="identifier">do_this</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">),</span>
+ <span class="identifier">do_that</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
+ <span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+ Wrapping a comma operator chain around a parentheses pair blocks the
+ interpretation as an argument separator. The reason for the exception
+ for the square bracket operator is that the operator always takes exactly
+ one argument, so it "transforms" any attempt at multiple arguments
+ with a comma operator chain (and spits out an error for zero arguments).
+ </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 © 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="../statement.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="if__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/statement/for__statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/for__statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>for_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="___do_while_____statement.html" title="do_while_ Statement">
+<link rel="next" href="try__catch__statement.html" title="try_ catch_ 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="___do_while_____statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="try__catch__statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.for__statement"></a><a class="link" href="for__statement.html" title="for_ Statement">for_
+ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="keyword">for</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The syntax is:
+ </p>
+<pre class="programlisting"><span class="identifier">for_</span><span class="special">(</span><span class="identifier">init_statement</span><span class="special">,</span> <span class="identifier">conditional_expression</span><span class="special">,</span> <span class="identifier">step_statement</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+</pre>
+<p>
+ It is again very similar to the C++ for statement. Take note that the
+ init_statement, conditional_expression and step_statement are separated by the comma
+ instead of the semi-colon and each must be present (i.e. <code class="computeroutput"><span class="identifier">for_</span><span class="special">(,,)</span></code>
+ is invalid). This is a case where the <a class="link" href="../core/nothing.html" title="Nothing"><code class="computeroutput"><span class="identifier">nothing</span></code></a> actor can be useful.
+ </p>
+<p>
+ Example: This code prints each element N times where N is the element's
+ value. A newline terminates the printout of each value.
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">iii</span><span class="special">;</span>
+<span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="special">(</span>
+ <span class="identifier">for_</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">iii</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">iii</span><span class="special">)</span> <span class="special"><</span> <span class="identifier">arg1</span><span class="special">,</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">iii</span><span class="special">))</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">", "</span>
+ <span class="special">],</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"\n"</span><span class="special">)</span>
+ <span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+ As before, all these are lazily evaluated. The result of such statements
+ are in fact composites that are passed on to STL's for_each function.
+ In the viewpoint of <code class="computeroutput"><span class="identifier">for_each</span></code>,
+ what was passed is just a functor, no more, no less.
+ </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 © 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="___do_while_____statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="try__catch__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/statement/if__statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/if__statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>if_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="block_statement.html" title="Block Statement">
+<link rel="next" href="___if_else_____statement.html" title="if_else_ 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="block_statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="___if_else_____statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.if__statement"></a><a class="link" href="if__statement.html" title="if_ Statement">if_
+ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="keyword">if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ We have seen the <code class="computeroutput"><span class="identifier">if_</span></code>
+ statement. The syntax is:
+ </p>
+<pre class="programlisting"><span class="identifier">if_</span><span class="special">(</span><span class="identifier">conditional_expression</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</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 © 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="block_statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="___if_else_____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/statement/switch__statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/switch__statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>switch_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="___if_else_____statement.html" title="if_else_ Statement">
+<link rel="next" href="while__statement.html" title="while_ 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="___if_else_____statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="while__statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.switch__statement"></a><a class="link" href="switch__statement.html" title="switch_ Statement">switch_
+ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="keyword">switch</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The syntax is:
+ </p>
+<pre class="programlisting"><span class="identifier">switch_</span><span class="special">(</span><span class="identifier">integral_expression</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">case_</span><span class="special"><</span><span class="identifier">integral_value</span><span class="special">>(</span><span class="identifier">sequenced_statements</span><span class="special">),</span>
+ <span class="special">...</span>
+ <span class="identifier">default_</span><span class="special"><</span><span class="identifier">integral_value</span><span class="special">>(</span><span class="identifier">sequenced_statements</span><span class="special">)</span>
+<span class="special">]</span>
+</pre>
+<p>
+ A comma separated list of cases, and an optional default can be provided.
+ Note unlike a normal switch statement, cases do not fall through.
+ </p>
+<p>
+ Example: This code prints out <code class="computeroutput"><span class="string">"one"</span></code>,
+ <code class="computeroutput"><span class="string">"two"</span></code> or <code class="computeroutput"><span class="string">"other value"</span></code> depending on the
+ element's actual value:
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="identifier">switch_</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
+ <span class="special">[</span>
+ <span class="identifier">case_</span><span class="special"><</span><span class="number">1</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"one"</span><span class="special">)</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">),</span>
+ <span class="identifier">case_</span><span class="special"><</span><span class="number">2</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"two"</span><span class="special">)</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">),</span>
+ <span class="identifier">default_</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"other value"</span><span class="special">)</span> <span class="special"><<</span> <span class="char">'\n'</span><span class="special">)</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 © 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="___if_else_____statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="while__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/statement/throw_.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/throw_.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>throw_</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="try__catch__statement.html" title="try_ catch_ Statement">
+<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="try__catch__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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><h5 class="title">
+<a name="phoenix.reference.modules.statement.throw_"></a><a class="link" href="throw_.html" title="throw_">throw_</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="keyword">throw</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ As a natural companion to the try/catch support, the statement module
+ provides lazy throwing and rethrowing of exceptions.
+ </p>
+<p>
+ The syntax to throw an exception is:
+ </p>
+<pre class="programlisting"><span class="identifier">throw_</span><span class="special">(</span><span class="identifier">exception_expression</span><span class="special">)</span>
+</pre>
+<p>
+ The syntax to rethrow an exception is:
+ </p>
+<pre class="programlisting"><span class="identifier">throw_</span><span class="special">()</span>
+</pre>
+<p>
+ Example: This code extends the try/catch example, rethrowing exceptions
+ derived from runtime_error or exception, and translating other exception
+ types to runtime_errors.
+ </p>
+<pre class="programlisting"><span class="identifier">try_</span>
+<span class="special">[</span>
+ <span class="identifier">f</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_</span><span class="special"><</span><span class="identifier">runtime_error</span><span class="special">>()</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"caught runtime error or derived\n"</span><span class="special">),</span>
+ <span class="identifier">throw_</span><span class="special">()</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_</span><span class="special"><</span><span class="identifier">exception</span><span class="special">>()</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"caught exception or derived\n"</span><span class="special">),</span>
+ <span class="identifier">throw_</span><span class="special">()</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_all</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"caught some other type of exception\n"</span><span class="special">),</span>
+ <span class="identifier">throw_</span><span class="special">(</span><span class="identifier">runtime_error</span><span class="special">(</span><span class="string">"translated exception"</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 © 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="try__catch__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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/modules/statement/try__catch__statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/try__catch__statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>try_ catch_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="for__statement.html" title="for_ Statement">
+<link rel="next" href="throw_.html" title="throw_">
+</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="for__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="throw_.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.try__catch__statement"></a><a class="link" href="try__catch__statement.html" title="try_ catch_ Statement">try_
+ catch_ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="identifier">try_catch</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The syntax is:
+ </p>
+<pre class="programlisting"><span class="identifier">try_</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_</span><span class="special"><</span><span class="identifier">exception_type</span><span class="special">>()</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+<span class="special">...</span>
+<span class="special">.</span><span class="identifier">catch_all</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statement</span>
+<span class="special">]</span>
+</pre>
+<p>
+ Note the usual underscore after try and catch, and the extra parentheses
+ required after the catch.
+ </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>
+ <code class="computeroutput"><span class="identifier">do_</span></code> is one example
+ of a customized actor. See <a class="link" href="../../../advanced/extending/extending_actors.html" title="Extending Actors">Extending
+ Actors</a> for more details
+ </p></td></tr>
+</table></div>
+<p>
+ Example: The following code calls the (lazy) function <code class="computeroutput"><span class="identifier">f</span></code>
+ for each element, and prints messages about different exception types
+ it catches.
+ </p>
+<pre class="programlisting"><span class="identifier">try_</span>
+<span class="special">[</span>
+ <span class="identifier">f</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_</span><span class="special"><</span><span class="identifier">runtime_error</span><span class="special">>()</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"caught runtime error or derived\n"</span><span class="special">)</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_</span><span class="special"><</span><span class="identifier">exception</span><span class="special">>()</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"caught exception or derived\n"</span><span class="special">)</span>
+<span class="special">]</span>
+<span class="special">.</span><span class="identifier">catch_all</span>
+<span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"caught some other type of exception\n"</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 © 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="for__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="throw_.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/while__statement.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/statement/while__statement.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>while_ 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 1. Phoenix 3.0">
+<link rel="up" href="../statement.html" title="Statement">
+<link rel="prev" href="switch__statement.html" title="switch_ Statement">
+<link rel="next" href="___do_while_____statement.html" title="do_while_ 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="switch__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="___do_while_____statement.html"><img src="../../../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.reference.modules.statement.while__statement"></a><a class="link" href="while__statement.html" title="while_ Statement">while_
+ Statement</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">statement</span><span class="special">/</span><span class="keyword">while</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The syntax is:
+ </p>
+<pre class="programlisting"><span class="identifier">while_</span><span class="special">(</span><span class="identifier">conditional_expression</span><span class="special">)</span>
+<span class="special">[</span>
+ <span class="identifier">sequenced_statements</span>
+<span class="special">]</span>
+</pre>
+<p>
+ Example: This code decrements each element until it reaches zero and
+ prints out the number at each step. A newline terminates the printout
+ of each value.
+ </p>
+<pre class="programlisting"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="special">(</span>
+ <span class="identifier">while_</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">--)</span>
+ <span class="special">[</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">arg1</span> <span class="special"><<</span> <span class="string">", "</span>
+ <span class="special">],</span>
+ <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"\n"</span><span class="special">)</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 © 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="switch__statement.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../statement.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="___do_while_____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/stl.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,45 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>STL</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../index.html" title="Chapter 1. Phoenix 3.0">
+<link rel="up" href="../modules.html" title="Modules">
+<link rel="prev" href="bind/compatibility_with_other_bind_libraries.html" title="Compatibility with other bind libraries">
+<link rel="next" href="stl/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="bind/compatibility_with_other_bind_libraries.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="stl/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.stl"></a><a class="link" href="stl.html" title="STL">STL</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Container</span></dt>
+<dt><span class="section">Algorithm</span></dt>
+</dl></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ This section summarizes the lazy equivalents of C++ Standard Library functionality
+ </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 © 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/compatibility_with_other_bind_libraries.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="stl/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/stl/algorithm.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/algorithm.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,1074 @@
+<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 1. Phoenix 3.0">
+<link rel="up" href="../stl.html" title="STL">
+<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="../stl.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><h5 class="title">
+<a name="phoenix.reference.modules.stl.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm">Algorithm</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The algorithm module provides wrappers for the standard algorithms in
+ the <code class="computeroutput"><span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span></code> and <code class="computeroutput"><span class="special"><</span><span class="identifier">numeric</span><span class="special">></span></code>
+ headers.
+ </p>
+<p>
+ The algorithms are divided into the categories iteration, transformation
+ and querying, modelling the Boost.MPL
+ library. The different algorithm classes can be included using the headers:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">querying</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The functions of the algorithm module take ranges as arguments where
+ appropriate. This is different to the standard library, but easy enough
+ to pick up. Ranges are described in detail in the Boost.Range
+ library.
+ </p>
+<p>
+ For example, using the standard copy algorithm to copy between 2 arrays:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">array</span><span class="special">[]</span> <span class="special">=</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="number">3</span><span class="special">};</span>
+<span class="keyword">int</span> <span class="identifier">output</span><span class="special">[</span><span class="number">3</span><span class="special">];</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">array</span><span class="special">,</span> <span class="identifier">array</span> <span class="special">+</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">output</span><span class="special">);</span> <span class="comment">// We have to provide iterators
+</span> <span class="comment">// to both the start and end of array
+</span></pre>
+<p>
+ The analogous code using the phoenix algorithm module is:
+ </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">array</span><span class="special">[]</span> <span class="special">=</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="number">3</span><span class="special">};</span>
+<span class="keyword">int</span> <span class="identifier">output</span><span class="special">[</span><span class="number">3</span><span class="special">];</span>
+<span class="identifier">copy</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">array</span><span class="special">,</span> <span class="identifier">output</span><span class="special">);</span> <span class="comment">// Notice only 2 arguments, the end of
+</span> <span class="comment">// array is established automatically
+</span></pre>
+<p>
+ The Boost.Range
+ library provides support for standard containers, strings and arrays,
+ and can be extended to support additional types.
+ </p>
+<p>
+ The following tables describe the different categories of algorithms,
+ and their semantics.
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../images/tip.png" alt="tip"></span> Arguments in brackets denote optional parameters.
+ </p>
+</div>
+<div class="table">
+<a name="id801633"></a><p class="title"><b>Table 1.6. Iteration Algorithms</b></p>
+<div class="table-contents"><table class="table" summary="Iteration Algorithms">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Function
+ </p>
+ </th>
+<th>
+ <p>
+ stl Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">accumulate</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">accumulate</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="id801912"></a><p class="title"><b>Table 1.7. Querying Algorithms</b></p>
+<div class="table-contents"><table class="table" summary="Querying Algorithms">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Function
+ </p>
+ </th>
+<th>
+ <p>
+ stl Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find_end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
+ <span class="identifier">r2</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find_end</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">count</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">count</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">count_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">count_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">))</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">i</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">i</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">equal</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">i</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">equal</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">i</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">search</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
+ <span class="identifier">r2</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">search</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">binary_search</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">binary_search</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">includes</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
+ <span class="identifier">r2</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">includes</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">min_element</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">min_element</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">max_element</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">max_element</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lexicographical_compare</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lexicographical_compare</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="id804383"></a><p class="title"><b>Table 1.8. Transformation Algorithms</b></p>
+<div class="table-contents"><table class="table" summary="Transformation Algorithms">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Function
+ </p>
+ </th>
+<th>
+ <p>
+ stl Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">copy_backward</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">copy_backward</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">o</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">o</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">o</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">i</span><span class="special">,</span>
+ <span class="identifier">o</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">a</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace_copy_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">replace_copy_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">fill</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">fill</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">fill_n</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">n</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">fill_n</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">n</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">generate</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">generate</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">generate_n</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">generate_n</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove_copy_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">remove_copy_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unique</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unique</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unique_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unique_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">))</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">reverse_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">reverse_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rotate</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">m</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rotate</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">m</span><span class="special">,</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">))</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rotate_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rotate_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partition</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partition</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">f</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">sort</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">sort</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partial_sort</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">m</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partial_sort</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partial_sort_copy</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partial_sort_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">nth_element</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">n</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">nth_element</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">merge</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
+ <span class="identifier">r2</span><span class="special">,</span>
+ <span class="identifier">o</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">merge</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
+ <span class="identifier">o</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">inplace_merge</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">m</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">inplace_merge</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_union</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
+ <span class="identifier">r2</span><span class="special">,</span>
+ <span class="identifier">o</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_union</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
+ <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_intersection</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_intersection</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_difference</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_difference</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_symmetric_difference</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">set_symmetric_difference</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">sort_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">sort_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
+ <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
+ <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">next_permutation</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">next_permutation</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">prev_permutation</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">prev_permutation</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">inner_product</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f1</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">inner_product</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f1</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partial_sum</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">partial_sum</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">adjacent_difference</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">adjacent_difference</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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/stl/container.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/modules/stl/container.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,593 @@
+<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 1. Phoenix 3.0">
+<link rel="up" href="../stl.html" title="STL">
+<link rel="prev" href="../stl.html" title="STL">
+<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="../stl.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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><h5 class="title">
+<a name="phoenix.reference.modules.stl.container"></a><a class="link" href="container.html" title="Container">Container</a>
+</h5></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ The container module predefines a set of lazy functions that work on
+ STL containers. These functions provide a mechanism for the lazy evaluation
+ of the public member functions of the STL containers. The lazy functions
+ are thin wrappers that simply forward to their respective counterparts
+ in the STL library.
+ </p>
+<p>
+ Lazy functions are provided for all of the member functions of the following
+ containers:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ deque
+ </li>
+<li class="listitem">
+ list
+ </li>
+<li class="listitem">
+ map
+ </li>
+<li class="listitem">
+ multimap
+ </li>
+<li class="listitem">
+ vector
+ </li>
+</ul></div>
+<p>
+ Indeed, should your class have member functions with the same names and
+ signatures as those listed below, then it will automatically be supported.
+ To summarize, lazy functions are provided for member functions:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ assign
+ </li>
+<li class="listitem">
+ at
+ </li>
+<li class="listitem">
+ back
+ </li>
+<li class="listitem">
+ begin
+ </li>
+<li class="listitem">
+ capacity
+ </li>
+<li class="listitem">
+ clear
+ </li>
+<li class="listitem">
+ empty
+ </li>
+<li class="listitem">
+ end
+ </li>
+<li class="listitem">
+ erase
+ </li>
+<li class="listitem">
+ front
+ </li>
+<li class="listitem">
+ get_allocator
+ </li>
+<li class="listitem">
+ insert
+ </li>
+<li class="listitem">
+ key_comp
+ </li>
+<li class="listitem">
+ max_size
+ </li>
+<li class="listitem">
+ pop_back
+ </li>
+<li class="listitem">
+ pop_front
+ </li>
+<li class="listitem">
+ push_back
+ </li>
+<li class="listitem">
+ push_front
+ </li>
+<li class="listitem">
+ rbegin
+ </li>
+<li class="listitem">
+ rend
+ </li>
+<li class="listitem">
+ reserve
+ </li>
+<li class="listitem">
+ resize
+ </li>
+<li class="listitem">
+ size
+ </li>
+<li class="listitem">
+ splice
+ </li>
+<li class="listitem">
+ value_comp
+ </li>
+</ul></div>
+<p>
+ The lazy functions' names are the same as the corresponding member function.
+ The difference is that the lazy functions are free functions and therefore
+ does not use the member "dot" syntax.
+ </p>
+<div class="table">
+<a name="id798581"></a><p class="title"><b>Table 1.4. Sample usage</b></p>
+<div class="table-contents"><table class="table" summary="Sample usage">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ "Normal" version
+ </p>
+ </th>
+<th>
+ <p>
+ "Lazy" version
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">my_vector</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="number">5</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">at</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span>
+ <span class="number">5</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">my_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">size</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">my_vector1</span><span class="special">.</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">my_vector2</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">swap</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span>
+ <span class="identifier">arg2</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+ Notice that member functions with names that clash with stl algorithms
+ are absent. This will be provided in Phoenix's algorithm module.
+ </p>
+<p>
+ No support is provided here for lazy versions of <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]</span></code> etc. Such operators are not specific
+ to STL containers and lazy versions can therefore be found in <a class="link" href="../operator.html" title="Operator">operators</a>.
+ </p>
+<p>
+ The following table describes the container functions and their semantics.
+ </p>
+<div class="sidebar">
+<p class="title"><b></b></p>
+<p>
+ <span class="inlinemediaobject"><img src="../../../../images/tip.png" alt="tip"></span> Arguments in brackets denote optional parameters.
+ </p>
+</div>
+<div class="table">
+<a name="id798921"></a><p class="title"><b>Table 1.5. Lazy STL Container Functions</b></p>
+<div class="table-contents"><table class="table" summary="Lazy STL Container Functions">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Function
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">assign</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">,</span>
+ <span class="identifier">c</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">assign</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>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">at</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">i</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">back</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">back</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">begin</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">capacity</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">capacity</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">clear</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">empty</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">erase</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">front</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">front</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">get_allocator</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">get_allocator</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">,</span>
+ <span class="identifier">c</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</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>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">key_comp</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">key_comp</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">max_size</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">max_size</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">pop_back</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">pop_back</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">pop_front</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">pop_front</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">d</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">d</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">push_front</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">pop_front</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">pop_front</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rbegin</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">rbegin</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rend</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">rend</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">n</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">resize</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span><span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">size</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">splice</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">a</span><span class="special">[,</span>
+ <span class="identifier">b</span><span class="special">,</span>
+ <span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">d</span><span class="special">])</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">splice</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>
+ <span class="identifier">d</span><span class="special">])</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">value_comp</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">value_comp</span><span class="special">()</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../stl.html"><img src="../../../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/reference/organization.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -41,7 +41,7 @@
header files. There are no object files to link against.
</p>
<a name="phoenix.reference.organization.core"></a><h3>
-<a name="id715852"></a>
+<a name="id780676"></a>
<a class="link" href="organization.html#phoenix.reference.organization.core">Core</a>
</h3>
<p>
@@ -70,7 +70,7 @@
can again be another composite.
</p>
<div class="table">
-<a name="id715902"></a><p class="title"><b>Table 1.2. Modules</b></p>
+<a name="id780726"></a><p class="title"><b>Table 1.2. Modules</b></p>
<div class="table-contents"><table class="table" summary="Modules">
<colgroup>
<col>
@@ -199,7 +199,7 @@
the core module is defined in <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
</p>
<div class="table">
-<a name="id716193"></a><p class="title"><b>Table 1.3. Includes</b></p>
+<a name="id781017"></a><p class="title"><b>Table 1.3. Includes</b></p>
<div class="table-contents"><table class="table" summary="Includes">
<colgroup>
<col>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -53,7 +53,7 @@
into high gear quickly.
</p>
<a name="phoenix.starter_kit.functors_everywhere"></a><h3>
-<a name="id711290"></a>
+<a name="id776113"></a>
<a class="link" href="starter_kit.html#phoenix.starter_kit.functors_everywhere">Functors everywhere</a>
</h3>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -45,7 +45,7 @@
<span class="identifier">function</span><span class="special"><</span><span class="identifier">is_odd_impl</span><span class="special">></span> <span class="identifier">is_odd</span><span class="special">;</span>
</pre>
<a name="phoenix.starter_kit.lazy_functions.things_to_note_"></a><h3>
-<a name="id713961"></a>
+<a name="id778785"></a>
<a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.things_to_note_">Things
to note:</a>
</h3>
@@ -75,7 +75,7 @@
(See function.cpp)
</p>
<a name="phoenix.starter_kit.lazy_functions.predefined_lazy_functions"></a><h3>
-<a name="id714121"></a>
+<a name="id778945"></a>
<a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.predefined_lazy_functions">Predefined
Lazy Functions</a>
</h3>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -68,7 +68,7 @@
</p>
</div>
<a name="phoenix.starter_kit.lazy_operators.first_practical_example"></a><h3>
-<a name="id712950"></a>
+<a name="id777774"></a>
<a class="link" href="lazy_operators.html#phoenix.starter_kit.lazy_operators.first_practical_example">First
Practical Example</a>
</h3>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/phoenix/starter_kit/values.html 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -32,7 +32,7 @@
World"</span></code>.
</p>
<a name="phoenix.starter_kit.values.lazy_evaluation"></a><h3>
-<a name="id711432"></a>
+<a name="id776256"></a>
<a class="link" href="values.html#phoenix.starter_kit.values.lazy_evaluation">Lazy Evaluation</a>
</h3>
<p>
@@ -64,7 +64,7 @@
anything and defers the evaluation for later.
</p>
<a name="phoenix.starter_kit.values.callbacks"></a><h3>
-<a name="id711636"></a>
+<a name="id776459"></a>
<a class="link" href="values.html#phoenix.starter_kit.values.callbacks">Callbacks</a>
</h3>
<p>
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/html/quickbook_HTML.manifest 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -16,36 +16,53 @@
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/core/values.html
+phoenix/reference/modules/core/references.html
+phoenix/reference/modules/core/constant_references.html
+phoenix/reference/modules/core/arguments.html
+phoenix/reference/modules/core/nothing.html
phoenix/reference/modules/function.html
phoenix/reference/modules/operator.html
phoenix/reference/modules/statement.html
+phoenix/reference/modules/statement/block_statement.html
+phoenix/reference/modules/statement/if__statement.html
+phoenix/reference/modules/statement/___if_else_____statement.html
+phoenix/reference/modules/statement/switch__statement.html
+phoenix/reference/modules/statement/while__statement.html
+phoenix/reference/modules/statement/___do_while_____statement.html
+phoenix/reference/modules/statement/for__statement.html
+phoenix/reference/modules/statement/try__catch__statement.html
+phoenix/reference/modules/statement/throw_.html
phoenix/reference/modules/object.html
+phoenix/reference/modules/object/construction.html
+phoenix/reference/modules/object/new.html
+phoenix/reference/modules/object/delete.html
+phoenix/reference/modules/object/casts.html
phoenix/reference/modules/scope.html
+phoenix/reference/modules/scope/local_variables.html
+phoenix/reference/modules/scope/let.html
+phoenix/reference/modules/scope/lambda.html
phoenix/reference/modules/bind.html
-phoenix/reference/modules/container.html
-phoenix/reference/modules/algorithm.html
+phoenix/reference/modules/bind/binding_functions.html
+phoenix/reference/modules/bind/binding_member_functions.html
+phoenix/reference/modules/bind/binding_member_variables.html
+phoenix/reference/modules/bind/compatibility_with_other_bind_libraries.html
+phoenix/reference/modules/stl.html
+phoenix/reference/modules/stl/container.html
+phoenix/reference/modules/stl/algorithm.html
phoenix/advanced.html
phoenix/advanced/phoenix_in_detail.html
-phoenix/advanced/phoenix_in_detail/composites.html
+phoenix/advanced/phoenix_in_detail/actors.html
phoenix/advanced/phoenix_in_detail/ast_structure.html
phoenix/advanced/extending.html
+phoenix/advanced/extending/extending_actors.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/c__0x_lambdas___differences__similiarities.html
+phoenix/notes/bll___differences__similiarities.html
phoenix/notes/performance.html
phoenix/notes/performance/compiletime.html
phoenix/notes/performance/runtime.html
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/notes.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -8,29 +8,17 @@
[section Notes]
-[section Portability, Similarities and Differences]
-
-[section Boost.Bind]
-[endsect]
-
-[section std::bind]
-[endsect]
-
-[section Boost.Function]
-[endsect]
+[include notes/porting_from_2_0.qbk]
-[section std::function]
-[endsect]
-[section C++0x Lambdas]
+[section C++0x Lambdas - Differences, Similiarities]
+Notes on portability with all the other existing FP libraries
[endsect]
+[section BLL - Differences, Similiarities]
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]
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-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -24,6 +24,7 @@
[def __tip__ [$images/tip.png]]
[def __spirit__ [@http://spirit.sourceforge.net Spirit]]
+[def __proto__ [@http://www.boost.org/doc/libs/1_43_0/doc/html/proto Boost.Proto]]
[def __haskell__ [@http://www.haskell.org Haskell]]
[def __mpl__ [@http://www.boost.org/libs/mpl/index.html MPL]]
[def __bll__ [@http://www.boost.org/libs/lambda/doc/index.html BLL]]
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-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -62,7 +62,7 @@
information.]]
]
-[blurb __note__ `using namespace boost::phoenix` is assumed if nothing else is explicitly noted]
+[blurb __note__ Unless otherwise noted `using namespace boost::phoenix;` is assumed]
[h2 [*/...To my dear daughter, Phoenix/]]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -20,35 +20,18 @@
[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]
+[include reference/core.qbk]
+[include reference/function.qbk]
+[include reference/operator.qbk]
+[include reference/statement.qbk]
+[include reference/object.qbk]
+[include reference/scope.qbk]
+[include reference/bind.qbk]
+[include reference/stl.qbk]
-[section Algorithm]
-[endsect]
[endsect]
[endsect]
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/bind.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,123 @@
+[/==============================================================================
+ 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 Bind]
+
+['Binding] is the act of tying together a function to some arguments for
+deferred (lazy) evaluation. Named [link phoenix.reference.modules.function Lazy functions]
+require a bit of typing. Unlike (unnamed) lambda expressions, we need to write a
+functor somewhere offline, detached from the call site. If you wish to transform a
+plain function, member function or member variable to a lambda expression, `bind`
+is your friend.
+
+[note Take note that binders are monomorphic. Rather than binding
+functions, the preferred way is to write true generic and polymorphic [link
+phoenix.reference.modules.function lazy-functions]. However, since most of the time we
+are dealing with adaptation of exisiting code, binders get the job done faster.]
+
+There is a set of overloaded `bind` template functions. Each `bind(x)`
+function generates a suitable binder object, a [link phoenix.reference.composite
+composite].
+
+[section Binding Functions]
+
+ #include <boost/phoenix/bind/bind_function.hpp>
+
+Example, given a function `foo`:
+
+ void foo(int n)
+ {
+ std::cout << n << std::endl;
+ }
+
+Here's how the function `foo` may be bound:
+
+ bind(&foo, arg1)
+
+This is now a full-fledged [link phoenix.reference.composite composite] that can finally
+be evaluated by another function call invocation. A second function call will
+invoke the actual `foo` function. Example:
+
+ bind(&foo, arg1)(4);
+
+will print out "4".
+
+[endsect]
+[section Binding Member Functions]
+
+ #include <boost/phoenix/bind/bind_member_function.hpp>
+
+Binding member functions can be done similarly. A bound member function takes in
+a pointer or reference to an object as the first argument. For instance, given:
+
+ struct xyz
+ {
+ void foo(int) const;
+ };
+
+`xyz`'s `foo` member function can be bound as:
+
+ bind(&xyz::foo, obj, arg1) // obj is an xyz object
+
+Take note that a lazy-member functions expects the first argument to be a
+pointer or reference to an object. Both the object (reference or pointer) and
+the arguments can be lazily bound. Examples:
+
+ xyz obj;
+ bind(&xyz::foo, arg1, arg2) // arg1.foo(arg2)
+ bind(&xyz::foo, obj, arg1) // obj.foo(arg1)
+ bind(&xyz::foo, obj, 100) // obj.foo(100)
+
+[endsect]
+[section Binding Member Variables]
+
+ #include <boost/phoenix/bind/bind_member_variable.hpp>
+
+Member variables can also be bound much like member functions. Member variables
+are not functions. Yet, like the [link phoenix.reference.modules.core.references `ref(x)`] that
+acts like a nullary function returning a reference to the data, member variables,
+when bound, act like a unary function, taking in a pointer or reference to an
+object as its argument and returning a reference to the bound member variable.
+For instance, given:
+
+ struct xyz
+ {
+ int v;
+ };
+
+`xyz::v` can be bound as:
+
+ bind(&xyz::v, obj) // obj is an xyz object
+
+As noted, just like the bound member function, a bound member variable also
+expects the first (and only) argument to be a pointer or reference to an object.
+The object (reference or pointer) can be lazily bound. Examples:
+
+ xyz obj;
+ bind(&xyz::v, arg1) // arg1.v
+ bind(&xyz::v, obj) // obj.v
+ bind(&xyz::v, arg1)(obj) = 4 // obj.v = 4
+
+[endsect]
+
+[section Compatibility with other bind libraries]
+
+`phoenix::bind` passes all testcases of the Boost.Bind library. It is therefore
+completely compatible and interchangable.
+
+Note that at the current state of the library, you can not mix phoenix and lambda
+expressions just like that.
+
+Given the compatibility with Boost.Bind, we also assume compatibility with
+std::tr1::bind and std::bind from the upcoming C++0x standard
+
+[endsect]
+
+[endsect]
+
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/composite.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -9,10 +9,83 @@
[section Composite]
- template <typename F, template <typename> class Actor, typename... A>
- struct compose
+Actors may be combined in a multitude of ways to form composites. Composites are
+actors that are composed of zero or more actors. Composition is hierarchical. An
+element of the composite can be a primitive or again another composite. The
+flexibility to arbitrarily compose hierarchical structures allows us to form
+intricate constructions that model complex functions, statements and
+expressions.
+
+A composite is-a tuple of 0..N actors. N is the predefined maximum actors a
+composite can take.
+
+[note You can set `PHOENIX_COMPOSITE_LIMIT`, the predefined maximum
+actors a composite can take. By default, `PHOENIX_COMPOSITE_LIMIT` is set to
+`PHOENIX_LIMIT` (See [link phoenix.reference.actor Actor]).]
+
+In Phoenix, every actor is a composite. Phoenix is designed in a way that
+expressions form something like a S-Expr structure. This means that the main
+building block of phoenix is `proto::function`.
+
+The concept of a composite is therefore best formulated in terms of `proto::function`
+
+ actor<proto::function<F, env, A0, ... AN> >
+
+[variablelist Notation
+ [[`F`] [The evaluator]]
+ [[`env`] [The environment (placeholder which gets filled during the actual evaluation)]]
+ [[`A0, ... AN`] [The data carried with an actor]]
+]
+
+As mentioned each of the `A0...AN` can be another actor or composite, this makes
+an actor a recursive structure. The actual evluation is handle by the evaluator `F`.
+To ease the creation of actors, there exist helper class responsible for
+creating the correct types.
+
+[h2 `make_expr`]
+
+The first one is the bare-metal of the one provided. It is the natural expression
+template generator facility of __proto__.
+
+Usage Example:
+
+ template <typename F, typename A0>
+ typename proto::result_of::make_expr<proto::tag::function, phoenix_domain, F, A0>::type const
+ make_function(F f, A0 const& a0)
+ {
+ return proto::make_expr<proto::tag::function, phoenix_domain>(f, a0);
+ }
+
+This example creates a lazy function actor, usable within every phoenix expression
+
+[h2 `compose_ex`]
+
+The second one is building upon the proto::make_expr facility, and represents
+the heart of phoenix expression creation.
+
+[*Synopsis]
+
+ template <typename F, template <typename> Actor, typename A0 ... AN>
+ struct compose_ex
{
- result_type const operator()(A... a) const;
+ typedef proto::result_of::make_expr<
+ proto::tag::function
+ , default_domain_with_basic_expr
+ , funcwrap<F>
+ , A0 ... AN
+ >::type base_type
+
+ typedef Actor<base_type> result_type;
+
+ result_type const
+ operator()(A0 const& a0, ... AN const& an) const;
};
+[h2 `compose`]
+
+Convenience class which has `actor<Expr>` as its Actor:
+
+ template <typename F, template <typename> Actor, typename A0 ... AN>
+ struct compose: compose_ex<F, actor, A0, ... AN> {};
+
[endsect]
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/core.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -67,7 +67,7 @@
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
+applied functions functions to be immutable values (see [link phoenix.reference.modules.core.values
Values]). To achieve our intent, we use:
actor<reference, T&>
@@ -106,9 +106,131 @@
[endsect]
[section Arguments]
+
+ #include <boost/phoenix/core/argument.hpp>
+
+We use an instance of:
+
+ actor<argument, mpl::int_<N> >
+
+to represent the Nth function argument. The argument placeholder acts as an
+imaginary data-bin where a function argument will be placed.
+
+[h2 Predefined Arguments]
+
+There are a few predefined instances of `actor<argument, mpl::int_<N> >` named
+`arg1`..`argN`, and its __bll__ counterpart `_1`..`_N`. (where N is a predefined
+maximum).
+
+Here are some sample preset definitions of `arg1`..`argN`
+
+ make_argument<mpl::int_<0> >::type const arg1 = {};
+ make_argument<mpl::int_<1> >::type const arg2 = {};
+ make_argument<mpl::int_<2> >::type const arg3 = {};
+
+and its __bll__ `_1`..`_N` style counterparts:
+
+ make_argument<mpl::int_<0> >::type const _1 = {};
+ make_argument<mpl::int_<1> >::type const _2 = {};
+ make_argument<mpl::int_<2> >::type const _3 = {};
+
+[note You can set `PHOENIX_ARG_LIMIT`, the predefined maximum
+placeholder index. By default, `PHOENIX_ARG_LIMIT` is set to `PHOENIX_LIMIT`
+(See [link phoenix.reference.actor Actor]).]
+
+You see the use make_argument this is a convenience class wrapping the `compose` class:
+
+ template <typename N>
+ struct make_arguemnt : compose<argument, N> {};
+
+This scheme of actor creation is used throughout the library and follows the DRY principle.
+See [link phoenix.reference.composite Composites] for more details.
+
+[h2 User Defined Arguments]
+
+When appropriate, you can define your own `argument` names. For example:
+
+ make_argument< mpl::int_<0> > x; // note zero based index
+
+`x` may now be used as a parameter to a lazy function:
+
+ add(x, 6)
+
+which is equivalent to:
+
+ add(arg1, 6)
+
+[note
+When dealing with argument placeholders the question arises wether you can call
+member functions on an `argument` actor.
+
+This is possible by supplying a costum `actor` which has a member
+generator function. See [link phoenix.advanced.extending.extending_actors Extending Actors]
+for more details.
+]
+
+[h2 Evaluating an Argument]
+
+An argument, when evaluated, selects the Nth argument from the those passed
+in by the client.
+
+For example:
+
+ char c = 'A';
+ int i = 123;
+ const char* s = "Hello World";
+
+ cout << arg1(c) << endl; // Get the 1st argument: c
+ cout << arg1(i, s) << endl; // Get the 1st argument: i
+ cout << arg2(i, s) << endl; // Get the 2nd argument: s
+
+will print out:
+
+ A
+ 123
+ Hello World
+
+[h2 Extra Arguments]
+
+In C and C++, a function can have extra arguments that are not at all used by
+the function body itself. These extra arguments are simply ignored.
+
+Phoenix also allows extra arguments to be passed. For example, recall our
+original `add` function:
+
+ add(arg1, arg2)
+
+We know now that partially applying this function results to a function that
+expects 2 arguments. However, the library is a bit more lenient and allows the
+caller to supply more arguments than is actually required. Thus, `add` actually
+allows 2 /or more/ arguments. For instance, with:
+
+ add(arg1, arg2)(x, y, z)
+
+the third argument `z` is ignored. Taking this further, in-between arguments are
+also ignored. Example:
+
+ add(arg1, arg5)(a, b, c, d, e)
+
+Here, arguments b, c, and d are ignored. The function `add` takes in the first
+argument (`arg1`) and the fifth argument (`arg5`).
+
+[note There are a few reasons why enforcing strict arity is not
+desireable. A case in point is the callback function. Typical callback functions
+provide more information than is actually needed. Lambda functions are often
+used as callbacks.]
+
[endsect]
[section Nothing]
+
+ #include <boost/phoenix/core/nothing.hpp>
+
+Finally, the `actor<null_actor>` does nothing; (a "bum", if you will :-).
+There's a sole `actor<null_actor>` instance named "nothing". This actor is
+actually useful in situations where we don't want to do anything. (See
+[link phoenix.reference.modules.statement.for__statement for_ Statement] for example).
+
[endsect]
[endsect]
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/function.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,93 @@
+[/==============================================================================
+ 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 Function]
+
+ #include <boost/phoenix/function.hpp>
+
+The `function` class template provides a mechanism for implementing lazily
+evaluated functions. Syntactically, a lazy function looks like an ordinary C/C++ function.
+The function call looks familiar and feels the same as ordinary C++ functions.
+However, unlike ordinary functions, the actual function execution is deferred.
+
+Unlike ordinary function pointers or functor objects that need to be explicitly bound through the bind function (see [link phoenix.reference.modules.bind Bind]),
+the argument types of these functions are automatically lazily bound.
+
+In order to create a lazy function, we need to implement a model of the
+FunctionEval concept. For a function that takes `N` arguments, a model of FunctionEval must
+provide:
+
+* An `operator()` that takes `N` arguments, and implements
+the function logic.
+* A nested metafunction `result<Signature>` or nested typedef `result_type`, following __boost_result_of__
+
+[/
+* A nested metafunction `result<A1, ... AN>` that takes the types of the `N` arguments to
+the function and returns the result type of the function. (There is a special case for function
+objects that accept no arguments. Such nullary functors are only required to define a typedef
+`result_type` that reflects the return type of its `operator()`).
+]
+
+For example, the following type implements the FunctionEval concept, in order to provide a
+lazy factorial function:
+
+ struct factorial_impl
+ {
+ template <typename Sig>
+ struct result;
+
+ template <typename This, typename Arg>
+ struct result<This(Arg)>
+ : typedef boost::remove_reference<Arg>
+ {};
+
+ template <typename Arg>
+ Arg operator()(Arg n) const
+ {
+ return (n <= 0) ? 1 : n * this->operator()(n-1);
+ }
+ };
+
+(See [@../../example/users_manual/factorial.cpp factorial.cpp])
+
+[note The type of Arg is either a const-reference or non-const-reference
+(depending on wether your argument to the actor evaluation is a const-ref or
+non-const-ref).]
+
+Having implemented the `factorial_impl` type, we can declare and instantiate a lazy
+`factorial` function this way:
+
+ function<factorial_impl> factorial;
+
+Invoking a lazy function such as `factorial` does not immediately execute the function
+object `factorial_impl`. Instead, an [link phoenix.reference.actor `actor`] object is
+created and returned to the caller. Example:
+
+ factorial(arg1)
+
+does nothing more than return an actor. A second function call will invoke
+the actual factorial function. Example:
+
+ cout << factorial(arg1)(4);
+
+will print out "24".
+
+Take note that in certain cases (e.g. for function objects with state), an
+instance of the model of FunctionEval may be passed on to the constructor. Example:
+
+ function<factorial_impl> factorial(ftor);
+
+where ftor is an instance of factorial_impl (this is not necessary in this case
+as `factorial_impl` does not require any state).
+
+[blurb __alert__ Take care though when using function objects with state because they are
+often copied repeatedly, and state may change in one of the copies, rather than the
+original.]
+
+[endsect]
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/object.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,113 @@
+[/==============================================================================
+ 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)
+===============================================================================/]
+
+[def __limit_note__
+The maximum number of actual parameters is limited by the
+preprocessor constant PHOENIX_COMPOSITE_LIMIT. Note though, that this limit
+should not be greater than PHOENIX_LIMIT. By default, `PHOENIX_COMPOSITE_LIMIT`
+is set to `PHOENIX_LIMIT` (See [link phoenix.reference.actor Actor]).
+]
+
+[section Object]
+
+The Object module deals with object construction, destruction and conversion.
+The module provides /"lazy"/ versions of C++'s object constructor, `new`,
+`delete`, `static_cast`, `dynamic_cast`, `const_cast` and `reinterpret_cast`.
+
+[section Construction]
+
+[*/Lazy constructors.../]
+
+ #include <boost/phoenix/object/construct.hpp>
+
+Lazily construct an object from an arbitrary set of arguments:
+
+ construct<T>(ctor_arg1, ctor_arg2, ..., ctor_argN);
+
+where the given parameters are the parameters to the contructor of the object of
+type T (This implies, that type T is expected to have a constructor with a
+corresponding set of parameter types.).
+
+Example:
+
+ construct<std::string>(arg1, arg2)
+
+Constructs a `std::string` from `arg1` and `arg2`.
+
+[note __limit_note__ ]
+
+[endsect]
+[section New]
+
+[*/Lazy new.../]
+
+ #include <boost/phoenix/object/new.hpp>
+
+Lazily construct an object, on the heap, from an arbitrary set of arguments:
+
+ new_<T>(ctor_arg1, ctor_arg2, ..., ctor_argN);
+
+where the given parameters are the parameters to the contructor of the object of
+type T (This implies, that type T is expected to have a constructor with a
+corresponding set of parameter types.).
+
+Example:
+
+ new_<std::string>(arg1, arg2) // note the spelling of new_ (with trailing underscore)
+
+Creates a `std::string` from `arg1` and `arg2` on the heap.
+
+[note __limit_note__ ]
+
+[endsect]
+[section Delete]
+
+[*/Lazy delete.../]
+
+ #include <boost/phoenix/object/delete.hpp>
+
+Lazily delete an object, from the heap:
+
+ delete_(arg);
+
+where arg is assumed to be a pointer to an object.
+
+Example:
+
+ delete_<std::string>(arg1) // note the spelling of delete_ (with trailing underscore)
+
+[endsect]
+[section Casts]
+
+[*/Lazy casts.../]
+
+ #include <boost/phoenix/object/static_cast.hpp>
+ #include <boost/phoenix/object/dynamic_cast.hpp>
+ #include <boost/phoenix/object/const_cast.hpp>
+ #include <boost/phoenix/object/reinterpret_cast.hpp>
+
+The set of lazy C++ cast template functions provide a way of lazily casting an
+object of a certain type to another type. The syntax resembles the well known
+C++ casts. Take note however that the lazy versions have a trailing underscore.
+
+ static_cast_<T>(lambda_expression)
+ dynamic_cast_<T>(lambda_expression)
+ const_cast_<T>(lambda_expression)
+ reinterpret_cast_<T>(lambda_expression)
+
+Example:
+
+ static_cast_<Base*>(&arg1)
+
+Static-casts the address of `arg1` to a `Base*`.
+
+[endsect]
+
+[endsect]
+
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/operator.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,161 @@
+[/==============================================================================
+ 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 Operator]
+
+ #include <boost/phoenix/operator.hpp>
+
+This facility provides a mechanism for lazily evaluating operators.
+Syntactically, a lazy operator looks and feels like an ordinary C/C++ infix,
+prefix or postfix operator. The operator application looks the same. However,
+unlike ordinary operators, the actual operator execution is deferred. Samples:
+
+ arg1 + arg2
+ 1 + arg1 * arg2
+ 1 / -arg1
+ arg1 < 150
+
+We have seen the lazy operators in action (see [link phoenix.starter_kit.lazy_operators
+Quick Start]). Let's go back and examine them a little bit further:
+
+ find_if(c.begin(), c.end(), arg1 % 2 == 1)
+
+Through operator overloading, the expression `arg1 % 2 == 1` actually generates
+an actor. This actor object is passed on to STL's `find_if` function. From
+the viewpoint of STL, the composite is simply a function object expecting a
+single argument of the containers value_type. For each element in `c`,
+the element is passed on as an argument `arg1` to the actor (function
+object). The actor checks if this is an odd value based on the expression
+`arg1 % 2 == 1` where arg1 is replaced by the container's element.
+
+Like lazy functions (see
+[link phoenix.reference.modules.function `function`]), lazy operators are not immediately executed
+when invoked. Instead, an actor (see [link phoenix.reference.actor actor])
+object is created and returned to the caller. Example:
+
+ (arg1 + arg2) * arg3
+
+does nothing more than return an actor. A second function call will evaluate
+the actual operators. Example:
+
+ cout << ((arg1 + arg2) * arg3)(4, 5, 6);
+
+will print out "54".
+
+Operator expressions are lazily evaluated following four simple rules:
+
+# A binary operator, except `->*` will be lazily evaluated when
+ /at least/ one of its operands is an actor object
+ (see [link phoenix.reference.actor actors]).
+# Unary operators are lazily evaluted if their argument is an actor object.
+# Operator `->*` is lazily evaluted if the left hand argument is an actor object.
+# The result of a lazy operator is an actor object that can in turn allow the
+ applications of rules 1, 2 and 3.
+
+For example, to check the following expression is lazily evaluated:
+
+ -(arg1 + 3 + 6)
+
+# Following rule 1, `arg1 + 3` is lazily evaluated since `arg1` is an actor
+ (see [link phoenix.reference.modules.core.arguments Arguments]).
+# The result of this `arg1 + 3` expression is an actor object, following rule 4.
+# Continuing, `arg1 + 3 + 6` is again lazily evaluated.
+ Rule 2.
+# By rule 4 again, the result of `arg1 + 3 + 6` is an actor object.
+# As `arg1 + 3 + 6` is an actor, `-(arg1 + 3 + 6)` is lazily evaluated. Rule 2.
+
+Lazy-operator application is highly contagious. In most cases, a single `argN`
+actor infects all its immediate neighbors within a group (first level or
+parenthesized expression).
+
+Note that at least one operand of any operator must be a valid actor
+for lazy evaluation to take effect. To force lazy evaluation of an
+ordinary expression, we can use `ref(x)`, `val(x)` or `cref(x)` to
+transform an operand into a valid actor object (see [link phoenix.reference.modules.core Core].
+For example:
+
+ 1 << 3; // Immediately evaluated
+ val(1) << 3; // Lazily evaluated
+
+[h2 Supported operators]
+
+[h3 Unary operators]
+
+ prefix: ~, !, -, +, ++, --, & (reference), * (dereference)
+ postfix: ++, --
+
+[h3 Binary operators]
+
+ =, [], +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
+ +, -, *, /, %, &, |, ^, <<, >>
+ ==, !=, <, >, <=, >=
+ &&, ||, ->*
+
+[h3 Ternary operator]
+
+ if_else(c, a, b)
+
+The ternary operator deserves special mention. Since C++ does not allow us to
+overload the conditional expression: `c ? a : b`, the if_else pseudo function is
+provided for this purpose. The behavior is identical, albeit in a lazy manner.
+
+[h3 Member pointer operator]
+
+ a->*member_object_pointer
+ a->*member_function_pointer
+
+The left hand side of the member pointer operator must be an actor returning a pointer
+type. The right hand side of the member pointer operator may be either a pointer to member
+object or pointer to member function.
+
+If the right hand side is a member object pointer, the result is an actor which, when evaluated,
+returns a reference to that member. For example:
+
+ struct A
+ {
+ int member;
+ };
+
+ A* a = new A;
+ ...
+
+ (arg1->*&A::member)(a); // returns member a->member
+
+If the right hand side is a member function pointer, the result is an actor which, when invoked, calls the specified member function. For example:
+
+ struct A
+ {
+ int func(int);
+ };
+
+ A* a = new A;
+ int i = 0;
+
+ (arg1->*&A::func)(arg2)(a, i); // returns a->func(i)
+
+
+[/table Include Files
+ [[Operators] [File]]
+ [[`-`, `+`, `++`, `--`, `+=`,
+ `-=`, `*=`, `/=`, `%=`,
+ `*`, `/`, `%`] [`#include <boost/spirit/home/phoenix/operator/arithmetic.hpp>`]]
+ [[`&=`, `|=`, `^=`, `<<=`,
+ `>>=`, `&`, `|`, `^`, `<<`,
+ `>>`] [`#include <boost/spirit/home/phoenix/operator/bitwise.hpp>`]]
+ [[`==`, `!=`, `<`,
+ `<=`, `>`, `>=`] [`#include <boost/spirit/home/phoenix/operator/comparison.hpp>`]]
+ [[`<<`, `>>`] [`#include <boost/spirit/home/phoenix/operator/io.hpp>`]]
+ [[`!`, &&, `||`] [`#include <boost/spirit/home/phoenix/operator/logical.hpp>`]]
+ [[`&x`, `*p`, `=`, `[]`] [`#include <boost/spirit/home/phoenix/operator/self.hpp>`]]
+ [[`if_else(c, a, b)`] [`#include <boost/spirit/home/phoenix/operator/if_else.hpp>`]]
+ [[`->*`] [`#include <boost/spirit/home/phoenix/operator/member.hpp>`]]
+]
+
+[endsect]
+
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/scope.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,287 @@
+[/==============================================================================
+ 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 Scope]
+
+Up until now, the most basic ingredient is missing: creation of and access to
+local variables in the stack. When recursion comes into play, you will soon
+realize the need to have true local variables. It may seem that we do not need
+this at all since an unnamed lambda function cannot call itself anyway; at least
+not directly. With some sort of arrangement, situations will arise where a
+lambda function becomes recursive. A typical situation occurs when we store a
+lambda function in a [@http://www.boost.org/libs/function Boost.Function],
+essentially naming the unnamed lambda.
+
+There will also be situations where a lambda function gets passed as an argument
+to another function. This is a more common situation. In this case, the lambda
+function assumes a new scope; new arguments and possibly new local variables.
+
+This section deals with local variables and nested lambda scopes.
+
+[section Local Variables]
+
+ #include <boost/phoenix/scope/local_variable.hpp>
+
+We use an instance of:
+
+ actor<local_variable<Key> >
+
+to represent a local variable. The local variable acts as an imaginary data-bin
+where a local, stack based data will be placed. `Key` is an arbitrary type that
+is used to identify the local variable. Example:
+
+ struct size_key;
+ actor<local_variable<size_key> > size;
+
+[*Predefined Local Variables]
+
+There are a few predefined instances of `actor<local_variable<Key> >`
+named `_a`..`_z` that you can already use. To make use of them, simply use the
+`namespace boost::phoenix::local_names`:
+
+ using namespace boost::phoenix::local_names;
+
+[endsect]
+[section let]
+
+ #include <boost/phoenix/scope/let.hpp>
+
+You declare local variables using the syntax:
+
+ let(local-declarations)
+ [
+ let-body
+ ]
+
+`let` allows 1..N local variable declarations (where N ==
+`PHOENIX_LOCAL_LIMIT`). Each declaration follows the form:
+
+ local-id = lambda-expression
+
+[note You can set `PHOENIX_LOCAL_LIMIT`, the predefined maximum local
+variable declarations in a let expression. By default, `PHOENIX_LOCAL_LIMIT` is
+set to `PHOENIX_LIMIT`.]
+
+Example:
+
+ let(_a = 123, _b = 456)
+ [
+ _a + _b
+ ]
+
+[*Reference Preservation]
+
+The type of the local variable assumes the type of the lambda- expression. Type
+deduction is reference preserving. For example:
+
+ let(_a = arg1, _b = 456)
+
+`_a` assumes the type of `arg1`: a reference to an argument, while `_b` has type
+`int`.
+
+Consider this:
+
+ int i = 1;
+
+ let(_a = arg1)
+ [
+ cout << --_a << ' '
+ ]
+ (i);
+
+ cout << i << endl;
+
+the output of above is : 0 0
+
+While with this:
+
+ int i = 1;
+
+ let(_a = val(arg1))
+ [
+ cout << --_a << ' '
+ ]
+ (i);
+
+ cout << i << endl;
+
+the output is : 0 1
+
+Reference preservation is necessary because we need to have L-value access to
+outer lambda-scopes (especially the arguments). `arg`s and `ref`s are L-values.
+`val`s are R-values.
+
+[*Visibility]
+[#phoenix.reference.modules.scope.let.visibility]
+
+The scope and lifetimes of the local variables is limited within the let-body.
+`let` blocks can be nested. A local variable may hide an outer local variable.
+For example:
+
+ let(_x = 1, _y = ", World")
+ [
+ // _x here is an int: 1
+
+ let(_x = "Hello") // hides the outer _x
+ [
+ cout << _x << _y // prints "Hello, World"
+ ]
+ ]
+
+The RHS (right hand side lambda-expression) of each local-declaration cannot
+refer to any LHS local-id. At this point, the local-ids are not in scope yet;
+they will only be in scope in the let-body. The code below is in error:
+
+ let(
+ _a = 1
+ , _b = _a // Error: _a is not in scope yet
+ )
+ [
+ // _a and _b's scope starts here
+ /*. body .*/
+ ]
+
+However, if an outer let scope is available, this will be searched. Since
+the scope of the RHS of a local-declaration is the outer scope enclosing
+the let, the RHS of a local-declaration can refer to a local variable of
+an outer scope:
+
+ let(_a = 1)
+ [
+ let(
+ _a = 1
+ , _b = _a // Ok. _a refers to the outer _a
+ )
+ [
+ /*. body .*/
+ ]
+ ]
+
+[endsect]
+[section lambda]
+
+ #include <boost/phoenix/scope/lambda.hpp>
+
+A lot of times, you'd want to write a lazy function that accepts one or more
+functions (higher order functions). STL algorithms come to mind, for example.
+Consider a lazy version of `stl::for_each`:
+
+ struct for_each_impl
+ {
+ template <typename C, typename F>
+ struct result
+ {
+ typedef void type;
+ };
+
+ template <typename C, typename F>
+ void operator()(C& c, F f) const
+ {
+ std::for_each(c.begin(), c.end(), f);
+ }
+ };
+
+ function<for_each_impl> const for_each = for_each_impl();
+
+Notice that the function accepts another function, `f` as an argument. The scope
+of this function, `f`, is limited within the `operator()`. When `f` is called
+inside `std::for_each`, it exists in a new scope, along with new arguments and,
+possibly, local variables. This new scope is not at all related to the outer
+scopes beyond the `operator()`.
+
+Simple syntax:
+
+ lambda
+ [
+ lambda-body
+ ]
+
+Like `let`, local variables may be declared, allowing 1..N local variable
+declarations (where N == `PHOENIX_LOCAL_LIMIT`):
+
+ lambda(local-declarations)
+ [
+ lambda-body
+ ]
+
+The same restrictions apply with regard to scope and visibility. The RHS
+(right hand side lambda-expression) of each local-declaration cannot refer
+to any LHS local-id. The local-ids are not in scope yet; they will be in
+scope only in the lambda-body:
+
+ lambda(
+ _a = 1
+ , _b = _a // Error: _a is not in scope yet
+ )
+
+See [link phoenix.reference.modules.scope.let.visibility `let` Visibility] for more information.
+
+Example: Using our lazy `for_each` let's print all the elements in a container:
+
+ for_each(arg1, lambda[cout << arg1])
+
+As far as the arguments are concerned (arg1..argN), the scope in which the
+lambda-body exists is totally new. The left `arg1` refers to the argument passed
+to `for_each` (a container). The right `arg1` refers to the argument passed by
+`std::for_each` when we finally get to call `operator()` in our `for_each_impl`
+above (a container element).
+
+Yet, we may wish to get information from outer scopes. While we do not have
+access to arguments in outer scopes, what we still have is access to local
+variables from outer scopes. We may only be able to pass argument related
+information from outer `lambda` scopes through the local variables.
+
+[note This is a crucial difference between `let` and `lambda`: `let`
+does not introduce new arguments; `lambda` does.]
+
+Another example: Using our lazy `for_each`, and a lazy `push_back`:
+
+ struct push_back_impl
+ {
+ template <typename C, typename T>
+ struct result
+ {
+ typedef void type;
+ };
+
+ template <typename C, typename T>
+ void operator()(C& c, T& x) const
+ {
+ c.push_back(x);
+ }
+ };
+
+ function<push_back_impl> const push_back = push_back_impl();
+
+write a lambda expression that accepts:
+
+# a 2-dimensional container (e.g. `vector<vector<int> >`)
+# a container element (e.g. `int`)
+
+and pushes-back the element to each of the `vector<int>`.
+
+Solution:
+
+ for_each(arg1,
+ lambda(_a = arg2)
+ [
+ push_back(arg1, _a)
+ ]
+ )
+
+Since we do not have access to the arguments of the outer scopes beyond the
+lambda-body, we introduce a local variable `_a` that captures the second outer
+argument: `arg2`. Hence: _a = arg2. This local variable is visible inside the
+lambda scope.
+
+(See [@../../example/users_manual/lambda.cpp lambda.cpp])
+
+[endsect]
+
+[endsect]
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/statement.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,366 @@
+[/==============================================================================
+ 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 Statement]
+
+[*/Lazy statements.../]
+
+The primitives and composite building blocks presented so far are sufficiently
+powerful to construct quite elaborate structures. We have presented lazy-
+functions and lazy-operators. How about lazy-statements? First, an appetizer:
+
+Print all odd-numbered contents of an STL container using `std::for_each`
+([@../../example/users_manual/all_odds.cpp all_odds.cpp]):
+
+ for_each(c.begin(), c.end(),
+ if_(arg1 % 2 == 1)
+ [
+ cout << arg1 << ' '
+ ]
+ );
+
+Huh? Is that valid C++? Read on...
+
+Yes, it is valid C++. The sample code above is as close as you can get to the
+syntax of C++. This stylized C++ syntax differs from actual C++ code. First, the
+`if` has a trailing underscore. Second, the block uses square brackets instead
+of the familiar curly braces {}.
+
+[note *C++ in C++?*
+
+ In as much as __spirit__ attempts to mimic EBNF in C++,
+ Phoenix attempts to mimic C++ in C++!!!
+]
+
+[note Unlike lazy functions and lazy operators, lazy statements always
+return void.]
+
+Here are more examples with annotations. The code almost speaks for itself.
+
+[section Block Statement]
+
+[/ #include <boost/phoenix/statement/sequence.hpp>]
+
+Syntax:
+
+ statement,
+ statement,
+ ....
+ statement
+
+Basically, these are comma separated statements. Take note that unlike the C/C++
+semicolon, the comma is a separator put *in-between* statements. This is like
+Pascal's semicolon separator, rather than C/C++'s semicolon terminator. For
+example:
+
+ statement,
+ statement,
+ statement, // ERROR!
+
+Is an error. The last statement should not have a comma. Block statements can be
+grouped using the parentheses. Again, the last statement in a group should not
+have a trailing comma.
+
+ statement,
+ statement,
+ (
+ statement,
+ statement
+ ),
+ statement
+
+Outside the square brackets, block statements should be grouped. For example:
+
+ for_each(c.begin(), c.end(),
+ (
+ do_this(arg1),
+ do_that(arg1)
+ )
+ );
+
+Wrapping a comma operator chain around a parentheses pair blocks the
+interpretation as an argument separator. The reason for the exception for
+the square bracket operator is that the operator always takes exactly one
+argument, so it "transforms" any attempt at multiple arguments with a comma
+operator chain (and spits out an error for zero arguments).
+
+[endsect]
+
+[section if_ Statement]
+
+ #include <boost/phoenix/statement/if.hpp>
+
+We have seen the `if_` statement. The syntax is:
+
+ if_(conditional_expression)
+ [
+ sequenced_statements
+ ]
+
+[endsect]
+
+[section '''if_else_''' Statement]
+
+ #include <boost/phoenix/statement/if.hpp>
+
+The syntax is
+
+ if_(conditional_expression)
+ [
+ sequenced_statements
+ ]
+ .else_
+ [
+ sequenced_statements
+ ]
+
+Take note that `else` has a leading dot and a trailing underscore: `.else_`
+
+Example: This code prints out all the elements and appends `" > 5"`, `" == 5"`
+or `" < 5"` depending on the element's actual value:
+
+ for_each(c.begin(), c.end(),
+ if_(arg1 > 5)
+ [
+ cout << arg1 << " > 5\n"
+ ]
+ .else_
+ [
+ if_(arg1 == 5)
+ [
+ cout << arg1 << " == 5\n"
+ ]
+ .else_
+ [
+ cout << arg1 << " < 5\n"
+ ]
+ ]
+ );
+
+Notice how the `if_else_` statement is nested.
+
+[note `if_` is one example of a customized actor. See [link phoenix.advanced.extending.extending_actors Extending Actors] for more details]
+
+[endsect]
+
+[section switch_ Statement]
+
+ #include <boost/phoenix/statement/switch.hpp>
+
+The syntax is:
+
+ switch_(integral_expression)
+ [
+ case_<integral_value>(sequenced_statements),
+ ...
+ default_<integral_value>(sequenced_statements)
+ ]
+
+A comma separated list of cases, and an optional default can be provided. Note unlike
+a normal switch statement, cases do not fall through.
+
+Example: This code prints out `"one"`, `"two"` or `"other value"` depending on the
+element's actual value:
+
+ for_each(c.begin(), c.end(),
+ switch_(arg1)
+ [
+ case_<1>(std::cout << val("one") << '\n'),
+ case_<2>(std::cout << val("two") << '\n'),
+ default_(std::cout << val("other value") << '\n')
+ ]
+ );
+
+[endsect]
+
+[section while_ Statement]
+
+ #include <boost/phoenix/statement/while.hpp>
+
+The syntax is:
+
+ while_(conditional_expression)
+ [
+ sequenced_statements
+ ]
+
+Example: This code decrements each element until it reaches zero and prints out
+the number at each step. A newline terminates the printout of each value.
+
+ for_each(c.begin(), c.end(),
+ (
+ while_(arg1--)
+ [
+ cout << arg1 << ", "
+ ],
+ cout << val("\n")
+ )
+ );
+
+[endsect]
+
+[section '''do_while_''' Statement]
+
+ #include <boost/phoenix/statement/do_while.hpp>
+
+The syntax is:
+
+ do_
+ [
+ sequenced_statements
+ ]
+ .while_(conditional_expression)
+
+Again, take note that `while` has a leading dot and a trailing underscore:
+`.while_`
+
+Example: This code is almost the same as the previous example above with a
+slight twist in logic.
+
+ for_each(c.begin(), c.end(),
+ (
+ do_
+ [
+ cout << arg1 << ", "
+ ]
+ .while_(arg1--),
+ cout << val("\n")
+ )
+ );
+
+[note `do_` is one example of a customized actor. See [link phoenix.advanced.extending.extending_actors Extending Actors] for more details]
+
+[endsect]
+
+[section for_ Statement]
+
+ #include <boost/phoenix/statement/for.hpp>
+
+The syntax is:
+
+ for_(init_statement, conditional_expression, step_statement)
+ [
+ sequenced_statements
+ ]
+
+It is again very similar to the C++ for statement. Take note that the
+init_statement, conditional_expression and '''step_statement''' are separated by the
+comma instead of the semi-colon and each must be present (i.e. `for_(,,)` is
+invalid). This is a case where the [link phoenix.reference.modules.core.nothing `nothing`]
+actor can be useful.
+
+Example: This code prints each element N times where N is the element's value. A
+newline terminates the printout of each value.
+
+ int iii;
+ for_each(c.begin(), c.end(),
+ (
+ for_(ref(iii) = 0, ref(iii) < arg1, ++ref(iii))
+ [
+ cout << arg1 << ", "
+ ],
+ cout << val("\n")
+ )
+ );
+
+As before, all these are lazily evaluated. The result of such statements are in
+fact composites that are passed on to STL's for_each function. In the viewpoint
+of `for_each`, what was passed is just a functor, no more, no less.
+
+[endsect]
+
+[section try_ catch_ Statement]
+
+ #include <boost/phoenix/statement/try_catch.hpp>
+
+The syntax is:
+
+ try_
+ [
+ sequenced_statements
+ ]
+ .catch_<exception_type>()
+ [
+ sequenced_statements
+ ]
+ ...
+ .catch_all
+ [
+ sequenced_statement
+ ]
+
+Note the usual underscore after try and catch, and the extra parentheses required
+after the catch.
+
+[note `do_` is one example of a customized actor. See [link phoenix.advanced.extending.extending_actors Extending Actors] for more details]
+
+Example: The following code calls the (lazy) function `f` for each element, and
+prints messages about different exception types it catches.
+
+ try_
+ [
+ f(arg1)
+ ]
+ .catch_<runtime_error>()
+ [
+ cout << val("caught runtime error or derived\n")
+ ]
+ .catch_<exception>()
+ [
+ cout << val("caught exception or derived\n")
+ ]
+ .catch_all
+ [
+ cout << val("caught some other type of exception\n")
+ ]
+
+[endsect]
+
+[section throw_]
+
+ #include <boost/phoenix/statement/throw.hpp>
+
+As a natural companion to the try/catch support, the statement module provides
+lazy throwing and rethrowing of exceptions.
+
+The syntax to throw an exception is:
+
+ throw_(exception_expression)
+
+The syntax to rethrow an exception is:
+
+ throw_()
+
+Example: This code extends the try/catch example, rethrowing exceptions derived from
+runtime_error or exception, and translating other exception types to runtime_errors.
+
+ try_
+ [
+ f(arg1)
+ ]
+ .catch_<runtime_error>()
+ [
+ cout << val("caught runtime error or derived\n"),
+ throw_()
+ ]
+ .catch_<exception>()
+ [
+ cout << val("caught exception or derived\n"),
+ throw_()
+ ]
+ .catch_all
+ [
+ cout << val("caught some other type of exception\n"),
+ throw_(runtime_error("translated exception"))
+ ]
+
+[endsect]
+
+[endsect]
+
Added: sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/stl.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/doc/reference/stl.qbk 2010-08-11 10:00:31 EDT (Wed, 11 Aug 2010)
@@ -0,0 +1,242 @@
+[/==============================================================================
+ 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 STL]
+
+ #include <boost/phoenix/stl.hpp>
+
+This section summarizes the lazy equivalents of C++ Standard Library functionality
+
+[section Container]
+
+ #include <boost/phoenix/stl/container.hpp>
+
+The container module predefines a set of lazy functions that work on STL
+containers. These functions provide a mechanism for the lazy evaluation of the
+public member functions of the STL containers. The lazy functions are thin
+wrappers that simply forward to their respective counterparts in the STL
+library.
+
+Lazy functions are provided for all of the member functions of the following
+containers:
+
+* deque
+* list
+* map
+* multimap
+* vector
+
+Indeed, should your class have member functions with the same names and
+signatures as those listed below, then it will automatically be supported. To
+summarize, lazy functions are provided for member functions:
+
+* assign
+* at
+* back
+* begin
+* capacity
+* clear
+* empty
+* end
+* erase
+* front
+* get_allocator
+* insert
+* key_comp
+* max_size
+* pop_back
+* pop_front
+* push_back
+* push_front
+* rbegin
+* rend
+* reserve
+* resize
+* size
+* splice
+* value_comp
+
+The lazy functions' names are the same as the corresponding member function. The
+difference is that the lazy functions are free functions and therefore does not
+use the member "dot" syntax.
+
+[table Sample usage
+ [["Normal" version] ["Lazy" version]]
+ [[`my_vector.at(5)`] [`at(arg1, 5)`]]
+ [[`my_list.size()`] [`size(arg1)`]]
+ [[`my_vector1.swap(my_vector2)`] [`swap(arg1, arg2)`]]
+]
+
+Notice that member functions with names that clash with stl algorithms are
+absent. This will be provided in Phoenix's algorithm module.
+
+No support is provided here for lazy versions of `operator+=`, `operator[]` etc.
+Such operators are not specific to STL containers and lazy versions can
+therefore be found in [link phoenix.reference.modules.operator operators].
+
+The following table describes the container functions and their semantics.
+
+[blurb __tip__ Arguments in brackets denote optional parameters.]
+
+[table Lazy STL Container Functions
+ [[Function] [Semantics]]
+ [[`assign(c, a[, b, c])`] [`c.assign(a[, b, c])`]]
+ [[`at(c, i)`] [`c.at(i)`]]
+ [[`back(c)`] [`c.back()`]]
+ [[`begin(c)`] [`c.begin()`]]
+ [[`capacity(c)`] [`c.capacity()`]]
+ [[`clear(c)`] [`c.clear()`]]
+ [[`empty(c)`] [`c.empty()`]]
+ [[`end(c)`] [`c.end()`]]
+ [[`erase(c, a[, b])`] [`c.erase(a[, b])`]]
+ [[`front(c)`] [`c.front()`]]
+ [[`get_allocator(c)`] [`c.get_allocator()`]]
+ [[`insert(c, a[, b, c])`] [`c.insert(a[, b, c])`]]
+ [[`key_comp(c)`] [`c.key_comp()`]]
+ [[`max_size(c)`] [`c.max_size()`]]
+ [[`pop_back(c)`] [`c.pop_back()`]]
+ [[`pop_front(c)`] [`c.pop_front()`]]
+ [[`push_back(c, d)`] [`c.push_back(d)`]]
+ [[`push_front(c, d)`] [`c.push_front(d)`]]
+ [[`pop_front(c)`] [`c.pop_front()`]]
+ [[`rbegin(c)`] [`c.rbegin()`]]
+ [[`rend(c)`] [`c.rend()`]]
+ [[`reserve(c, n)`] [`c.reserve(n)`]]
+ [[`resize(c, a[, b])`] [`c.resize(a[, b])`]]
+ [[`size(c)`] [`c.size()`]]
+ [[`splice(c, a[, b, c, d])`] [`c.splice(a[, b, c, d])`]]
+ [[`value_comp(c)`] [`c.value_comp()`]]
+]
+
+[endsect]
+
+[section Algorithm]
+
+ #include <boost/phoenix/stl/algorithm.hpp>
+
+The algorithm module provides wrappers for the standard algorithms in the
+`<algorithm>` and `<numeric>` headers.
+
+The algorithms are divided into the categories iteration, transformation and querying,
+modelling the __boost_mpl__ library. The different algorithm classes can be
+included using the headers:
+
+ #include <boost/phoenix/stl/algorithm/iteration.hpp>
+ #include <boost/phoenix/stl/algorithm/transformation.hpp>
+ #include <boost/phoenix/stl/algorithm/querying.hpp>
+
+The functions of the algorithm module take ranges as arguments where
+appropriate. This is different to the standard
+library, but easy enough to pick up. Ranges are described in detail in the
+__boost_range__ library.
+
+For example, using the standard copy algorithm to copy between 2 arrays:
+
+ int array[] = {1, 2, 3};
+ int output[3];
+ std::copy(array, array + 3, output); // We have to provide iterators
+ // to both the start and end of array
+
+The analogous code using the phoenix algorithm module is:
+
+ int array[] = {1, 2, 3};
+ int output[3];
+ copy(arg1, arg2)(array, output); // Notice only 2 arguments, the end of
+ // array is established automatically
+
+The __boost_range__ library provides support for standard containers, strings and
+arrays, and can be extended to support additional types.
+
+The following tables describe the different categories of algorithms, and their
+semantics.
+
+[blurb __tip__ Arguments in brackets denote optional parameters.]
+
+[table Iteration Algorithms
+ [[Function] [stl Semantics]]
+ [[`for_each(r, c)`] [`for_each(begin(r), end(r), f)`]]
+ [[`accumulate(r, o[, f])`] [`accumulate(begin(r), end(r), o[, f])`]]
+]
+
+[table Querying Algorithms
+ [[Function] [stl Semantics]]
+ [[`find(r, a)`] [`find(begin(r), end(r), a)`]]
+ [[`find_if(r, f)`] [`find_if(begin(r), end(r), f)`]]
+ [[`find_end(r1, r2[, f])`] [`find_end(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`find_first_of(r1, r2[, f])`] [`find_first_of(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`adjacent_find(r[, f])`] [`adjacent_find(begin(r), end(r)[, f])`]]
+ [[`count(r, a)`] [`count(begin(r), end(r), a)`]]
+ [[`count_if(r, f)`] [`count_if(begin(r), end(r), f)`]]
+ [[`distance(r)`] [`distance(begin(r), end(r))`]]
+ [[`mismatch(r, i[, f])`] [`mismatch(begin(r), end(r), i[, f])`]]
+ [[`equal(r, i[, f])`] [`equal(begin(r), end(r), i[, f])`]]
+ [[`search(r1, r2[, f])`] [`search(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`lower_bound(r, a[, f])`] [`lower_bound(begin(r), end(r), a[, f])`]]
+ [[`upper_bound(r, a[, f])`] [`upper_bound(begin(r), end(r), a[, f])`]]
+ [[`equal_range(r, a[, f])`] [`equal_range(begin(r), end(r), a[, f])`]]
+ [[`binary_search(r, a[, f])`] [`binary_search(begin(r), end(r), a[, f])`]]
+ [[`includes(r1, r2[, f])`] [`includes(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`min_element(r[, f])`] [`min_element(begin(r), end(r)[, f])`]]
+ [[`max_element(r[, f])`] [`max_element(begin(r), end(r)[, f])`]]
+ [[`lexicographical_compare(r1, r2[, f])`] [`lexicographical_compare(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+]
+
+[table Transformation Algorithms
+ [[Function] [stl Semantics]]
+ [[`copy(r, o)`] [`copy(begin(r), end(r), o)`]]
+ [[`copy_backward(r, o)`] [`copy_backward(begin(r), end(r), o)`]]
+ [[`transform(r, o, f)`] [`transform(begin(r), end(r), o, f)`]]
+ [[`transform(r, i, o, f)`] [`transform(begin(r), end(r), i, o, f)`]]
+ [[`replace(r, a, b)`] [`replace(begin(r), end(r), a, b)`]]
+ [[`replace_if(r, f, a)`] [`replace(begin(r), end(r), f, a)`]]
+ [[`replace_copy(r, o, a, b)`] [`replace_copy(begin(r), end(r), o, a, b)`]]
+ [[`replace_copy_if(r, o, f, a)`] [`replace_copy_if(begin(r), end(r), o, f, a)`]]
+ [[`fill(r, a)`] [`fill(begin(r), end(r), a)`]]
+ [[`fill_n(r, n, a)`] [`fill_n(begin(r), n, a)`]]
+ [[`generate(r, f)`] [`generate(begin(r), end(r), f)`]]
+ [[`generate_n(r, n, f)`] [`generate_n(begin(r), n, f)`]]
+ [[`remove(r, a)`] [`remove(begin(r), end(r), a)`]]
+ [[`remove_if(r, f)`] [`remove_if(begin(r), end(r), f)`]]
+ [[`remove_copy(r, o, a)`] [`remove_copy(begin(r), end(r), o, a)`]]
+ [[`remove_copy_if(r, o, f)`] [`remove_copy_if(begin(r), end(r), o, f)`]]
+ [[`unique(r[, f])`] [`unique(begin(r), end(r)[, f])`]]
+ [[`unique_copy(r, o[, f])`] [`unique_copy(begin(r), end(r), o[, f])`]]
+ [[`reverse(r)`] [`reverse(begin(r), end(r))`]]
+ [[`reverse_copy(r, o)`] [`reverse_copy(begin(r), end(r), o)`]]
+ [[`rotate(r, m)`] [`rotate(begin(r), m, end(r))`]]
+ [[`rotate_copy(r, m, o)`] [`rotate_copy(begin(r), m, end(r), o)`]]
+ [[`random_shuffle(r[, f])`] [`random_shuffle(begin(r), end(r), f)`]]
+ [[`partition(r, f)`] [`partition(begin(r), end(r), f)`]]
+ [[`stable_partition(r, f)`] [`stable_partition(begin(r), end(r), f)`]]
+ [[`sort(r[, f])`] [`sort(begin(r), end(r)[, f])`]]
+ [[`stable_sort(r[, f])`] [`stable_sort(begin(r), end(r)[, f])`]]
+ [[`partial_sort(r, m[, f])`] [`partial_sort(begin(r), m, end(r)[, f])`]]
+ [[`partial_sort_copy(r1, r2[, f])`] [`partial_sort_copy(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`nth_element(r, n[, f])`] [`nth_element(begin(r), n, end(r)[, f])`]]
+ [[`merge(r1, r2, o[, f])`] [`merge(begin(r1), end(r1), begin(r2), end(r2), o[, f])`]]
+ [[`inplace_merge(r, m[, f])`] [`inplace_merge(begin(r), m, end(r)[, f])`]]
+ [[`set_union(r1, r2, o[, f])`] [`set_union(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`set_intersection(r1, r2, o[, f])`] [`set_intersection(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`set_difference(r1, r2, o[, f])`] [`set_difference(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`set_symmetric_difference(r1, r2, o[, f])`] [`set_symmetric_difference(begin(r1), end(r1), begin(r2), end(r2)[, f])`]]
+ [[`push_heap(r[, f])`] [`push_heap(begin(r), end(r)[, f])`]]
+ [[`pop_heap(r[, f])`] [`pop_heap(begin(r), end(r)[, f])`]]
+ [[`make_heap(r[, f])`] [`make_heap(begin(r), end(r)[, f])`]]
+ [[`sort_heap(r[, f])`] [`sort_heap(begin(r), end(r)[, f])`]]
+ [[`next_permutation(r[, f])`] [`next_permutation(begin(r), end(r)[, f])`]]
+ [[`prev_permutation(r[, f])`] [`prev_permutation(begin(r), end(r)[, f])`]]
+
+ [[`inner_product(r, o, a[, f1, f2])`] [`inner_product(begin(r), end(r), o[, f1, f2])`]]
+ [[`partial_sum(r, o[, f])`] [`partial_sum(begin(r), end(r), o[, f])`]]
+ [[`adjacent_difference(r, o[, f])`] [`adjacent_difference(begin(r), end(r), o[, f])`]]
+]
+
+[endsect]
+
+[endsect]
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