diff --git a/doc/html/index.html b/doc/html/index.html index c6c489f..86a37eb 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -33,7 +33,7 @@
-

+

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)

@@ -143,7 +143,7 @@

- + Preface

@@ -162,7 +162,7 @@ lambda_cpp

- + Description

@@ -180,7 +180,7 @@ library is organized in highly independent modules and layers.

- + How to use this manual

@@ -202,7 +202,7 @@ icons precede some text to indicate:

-

Table 1.1. Icons

+

Table 1.1. Icons

@@ -291,12 +291,12 @@

- + ...To Joel's dear daughter, Phoenix

- +

Last revised: April 13, 2011 at 19:19:26 GMT

Last revised: May 09, 2011 at 22:04:52 GMT


diff --git a/doc/html/phoenix/basics.html b/doc/html/phoenix/basics.html index cd2d3ed..9096b70 100644 --- a/doc/html/phoenix/basics.html +++ b/doc/html/phoenix/basics.html @@ -49,7 +49,7 @@

- + Partial Function Application

@@ -101,7 +101,7 @@ black boxes anymore.

- + STL and higher order functions

@@ -133,7 +133,7 @@

- + Lazy Evaluation

@@ -188,7 +188,7 @@ std::cout << (arg1 % 2 == 1)(y) << std::endl; // prints 0 or false

- + Forwarding Function Problem

@@ -229,7 +229,7 @@

- + Polymorphic Functions

diff --git a/doc/html/phoenix/examples/extending_actors.html b/doc/html/phoenix/examples/extending_actors.html index b0815af..5e8b6c3 100644 --- a/doc/html/phoenix/examples/extending_actors.html +++ b/doc/html/phoenix/examples/extending_actors.html @@ -46,7 +46,7 @@ Statement on how to implement a custom actor which is usable as if it were a STL Container.

- + Requirements

@@ -148,7 +148,7 @@ Statement Additionally, we want all the operator() overloads of the regular actor.

- + Defining the actor
@@ -181,7 +181,7 @@ Statement };
- + Using the actor
@@ -238,7 +238,7 @@ Statement Wow, that was easy!

- + Adding life to the actor
diff --git a/doc/html/phoenix/inside/actions.html b/doc/html/phoenix/inside/actions.html index 3713a08..c037097 100644 --- a/doc/html/phoenix/inside/actions.html +++ b/doc/html/phoenix/inside/actions.html @@ -91,7 +91,7 @@ how the Phoenix AST will be traversed.

- + Writing an Action

diff --git a/doc/html/phoenix/inside/actor.html b/doc/html/phoenix/inside/actor.html index 346d374..809aa76 100644 --- a/doc/html/phoenix/inside/actor.html +++ b/doc/html/phoenix/inside/actor.html @@ -27,7 +27,7 @@ Actors in Detail

- + Actor

@@ -77,7 +77,7 @@ };

-

Table 1.9. Actor Concept Requirements

+

Table 1.9. Actor Concept Requirements

@@ -143,7 +143,7 @@

- + Function Call Operators
@@ -176,7 +176,7 @@
- + Context

@@ -187,7 +187,7 @@ all information necessary to evaluate the given expression.

-

Table 1.10. Context Concept Requirements

+

Table 1.10. Context Concept Requirements

@@ -285,7 +285,7 @@

- + Environment

@@ -304,7 +304,7 @@ such as local variables, etc.

- + Actions

@@ -343,7 +343,7 @@ on actions.

- + Evaluation
struct evaluator
@@ -374,7 +374,7 @@
 }
 
- + result_of::actor

diff --git a/doc/html/phoenix/inside/expression.html b/doc/html/phoenix/inside/expression.html index 7feb6a4..7c111b1 100644 --- a/doc/html/phoenix/inside/expression.html +++ b/doc/html/phoenix/inside/expression.html @@ -158,7 +158,7 @@

- + meta_grammar

@@ -186,7 +186,7 @@ you include this grammar gets extended by various expressions.

- + Example

diff --git a/doc/html/phoenix/inside/expression/boilerplate_macros.html b/doc/html/phoenix/inside/expression/boilerplate_macros.html index 2025539..9238347 100644 --- a/doc/html/phoenix/inside/expression/boilerplate_macros.html +++ b/doc/html/phoenix/inside/expression/boilerplate_macros.html @@ -44,7 +44,7 @@ BOOST_PHOENIX_DEFINE_EXPRESSION

- + Description

@@ -53,7 +53,7 @@ to create Phoenix Expressions

- + Synopsis
BOOST_PHOENIX_DEFINE_EXPRESSION(
@@ -64,7 +64,7 @@
 )
 
- + Semantics

@@ -112,13 +112,13 @@ This macros also adds a specialization for meta_grammar::case_<tag::name>.

- + Header
#include <boost/phoenix/core/expression.hpp>
 
- + Example

@@ -143,7 +143,7 @@ BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG

- + Description

@@ -152,7 +152,7 @@ to create Phoenix Expressions

- + Synopsis
BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG(
@@ -165,7 +165,7 @@
 )
 
- + Semantics

@@ -214,13 +214,13 @@ }

- + Header
#include <boost/phoenix/core/expression.hpp>
 
- + Example
BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG(
@@ -241,7 +241,7 @@
 BOOST_PHOENIX_DEFINE_EXPRESSION_EXT
 
 
- + Description

@@ -250,7 +250,7 @@ to create Phoenix Expressions

- + Synopsis
BOOST_PHOENIX_DEFINE_EXPRESSION_EXT(
@@ -264,7 +264,7 @@
 )
 
- + Semantics

@@ -313,13 +313,13 @@ This macros also adds a specialization for meta_grammar::case_<tag::name>.

- + Header
#include <boost/phoenix/core/expression.hpp>
 
- + Example
BOOST_PHOENIX_DEFINE_EXPRESSION_EXT(
@@ -338,7 +338,7 @@
 BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG
 
 
- + Description

@@ -347,7 +347,7 @@ to create Phoenix Expressions

- + Synopsis
BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG(
@@ -361,7 +361,7 @@
 )
 
- + Semantics

@@ -411,13 +411,13 @@ }

- + Header
#include <boost/phoenix/core/expression.hpp>
 
- + Example

diff --git a/doc/html/phoenix/modules/core/arguments.html b/doc/html/phoenix/modules/core/arguments.html index 7a8a34e..2c99fc3 100644 --- a/doc/html/phoenix/modules/core/arguments.html +++ b/doc/html/phoenix/modules/core/arguments.html @@ -38,7 +38,7 @@ an imaginary data-bin where a function argument will be placed.

- + Predefined Arguments
@@ -52,9 +52,9 @@

namespace placeholders
 {
-    expression::argument<0>::type const arg1 = {};
-    expression::argument<1>::type const arg2 = {};
-    expression::argument<2>::type const arg3 = {};
+    expression::argument<1>::type const arg1 = {};
+    expression::argument<2>::type const arg2 = {};
+    expression::argument<3>::type const arg3 = {};
 }
 

@@ -64,9 +64,9 @@

namespace placeholders
 {
-    expression::argument<0>::type const _1 = {};
-    expression::argument<1>::type const _2 = {};
-    expression::argument<2>::type const _3 = {};
+    expression::argument<1>::type const _1 = {};
+    expression::argument<2>::type const _2 = {};
+    expression::argument<3>::type const _3 = {};
 }
 
@@ -82,7 +82,7 @@

- + User Defined Arguments
@@ -90,7 +90,7 @@ When appropriate, you can define your own argument names. For example:

-
expression::argument<0>::type x; // note zero based index
+
expression::argument<1>::type x; // note one based index
 

x may now be used as a @@ -104,7 +104,7 @@

add(arg1, 6)
 
- + Evaluating an Argument
@@ -131,7 +131,7 @@ Hello World
- + Extra Arguments

diff --git a/doc/html/phoenix/modules/core/references.html b/doc/html/phoenix/modules/core/references.html index 2bae4ee..afe875f 100644 --- a/doc/html/phoenix/modules/core/references.html +++ b/doc/html/phoenix/modules/core/references.html @@ -66,7 +66,7 @@

add_assign(ref(i), 2)
 
- + Evaluating a Reference
@@ -82,7 +82,7 @@ prints out "3 Hello World"

- + Constant References
diff --git a/doc/html/phoenix/modules/core/values.html b/doc/html/phoenix/modules/core/values.html index adb1009..65e3469 100644 --- a/doc/html/phoenix/modules/core/values.html +++ b/doc/html/phoenix/modules/core/values.html @@ -54,7 +54,7 @@ but, as we'll see later on, there are situations where this is unavoidable.

- + Evaluating a Value

diff --git a/doc/html/phoenix/modules/function/adapting_functions.html b/doc/html/phoenix/modules/function/adapting_functions.html index a2d1f6f..c5438aa 100644 --- a/doc/html/phoenix/modules/function/adapting_functions.html +++ b/doc/html/phoenix/modules/function/adapting_functions.html @@ -45,7 +45,7 @@ BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY
- + Description

@@ -64,7 +64,7 @@

- + Synopsis
BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(
@@ -74,7 +74,7 @@
 )
 
- + Semantics

@@ -84,13 +84,13 @@ that has the return type RETURN_TYPE

- + Header
#include <boost/phoenix/function/adapt_function.hpp>
 
- + Example
namespace demo
@@ -116,7 +116,7 @@
 BOOST_PHOENIX_ADAPT_FUNCTION
 
 
- + Description

@@ -125,7 +125,7 @@ to make an arbitrary function a lazy function.

- + Synopsis
BOOST_PHOENIX_ADAPT_FUNCTION(
@@ -136,7 +136,7 @@
 )
 
- + Semantics

@@ -148,13 +148,13 @@ of arguments.

- + Header
#include <boost/phoenix/function/adapt_function.hpp>
 
- + Example
namespace demo
@@ -199,7 +199,7 @@
 BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY
 
 
- + Description

@@ -208,7 +208,7 @@ to make an arbitrary nullary function object a lazy function.

- + Synopsis
BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY(
@@ -217,7 +217,7 @@
 )
 
- + Semantics

@@ -228,13 +228,13 @@ Of protocol.

- + Header
#include <boost/phoenix/function/adapt_callable.hpp>
 
- + Example
namespace demo
@@ -265,7 +265,7 @@
 BOOST_PHOENIX_ADAPT_CALLABLE
 
 
- + Description

@@ -274,7 +274,7 @@ to make an arbitrary function object a lazy function.

- + Synopsis
BOOST_PHOENIX_ADAPT_CALLABLE(
@@ -284,7 +284,7 @@
 )
 
- + Semantics

@@ -296,13 +296,13 @@ Of protocol.

- + Header
#include <boost/phoenix/function/adapt_callable.hpp>
 
- + Example
namespace demo
diff --git a/doc/html/phoenix/modules/operator.html b/doc/html/phoenix/modules/operator.html
index caabfc9..90c46cd 100644
--- a/doc/html/phoenix/modules/operator.html
+++ b/doc/html/phoenix/modules/operator.html
@@ -141,18 +141,18 @@
 val(1) << 3; // Lazily evaluated
 
- + Supported operators
- + Unary operators
prefix:   ~, !, -, +, ++, --, & (reference), * (dereference)
 postfix:  ++, --
 
- + Binary operators
=, [], +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
@@ -161,7 +161,7 @@
 &&, ||, ->*
 
- + Ternary operator
if_else(c, a, b)
@@ -174,7 +174,7 @@
         albeit in a lazy manner.
       

- + Member pointer operator
@@ -215,7 +215,7 @@ (arg1->*&A::func)(arg2)(a, i); // returns a->func(i)
- + Include Files
diff --git a/doc/html/phoenix/modules/stl/algorithm.html b/doc/html/phoenix/modules/stl/algorithm.html index efe16cc..c8e4494 100644 --- a/doc/html/phoenix/modules/stl/algorithm.html +++ b/doc/html/phoenix/modules/stl/algorithm.html @@ -80,7 +80,7 @@

-

Table 1.6. Iteration Algorithms

+

Table 1.6. Iteration Algorithms

@@ -135,7 +135,7 @@

-

Table 1.7. Querying Algorithms

+

Table 1.7. Querying Algorithms

@@ -448,7 +448,7 @@

-

Table 1.8. Transformation Algorithms

+

Table 1.8. Transformation Algorithms

diff --git a/doc/html/phoenix/modules/stl/container.html b/doc/html/phoenix/modules/stl/container.html index ebe41c9..26ec54c 100644 --- a/doc/html/phoenix/modules/stl/container.html +++ b/doc/html/phoenix/modules/stl/container.html @@ -144,7 +144,7 @@ does not use the member "dot" syntax.

-

Table 1.4. Sample usage

+

Table 1.4. Sample usage

@@ -222,7 +222,7 @@

-

Table 1.5. Lazy STL Container Functions

+

Table 1.5. Lazy STL Container Functions

diff --git a/doc/html/phoenix/organization.html b/doc/html/phoenix/organization.html index 217cf27..28897aa 100644 --- a/doc/html/phoenix/organization.html +++ b/doc/html/phoenix/organization.html @@ -59,7 +59,7 @@ files. There are no object files to link against.

- + Core

@@ -79,7 +79,7 @@ can again be another expression.

-

Table 1.2. Modules

+

Table 1.2. Modules

@@ -207,7 +207,7 @@ core module is defined in <boost/phoenix/core.hpp>.

-

Table 1.3. Includes

+

Table 1.3. Includes

diff --git a/doc/html/phoenix/starter_kit.html b/doc/html/phoenix/starter_kit.html index 34c1954..ecbafd0 100644 --- a/doc/html/phoenix/starter_kit.html +++ b/doc/html/phoenix/starter_kit.html @@ -59,7 +59,7 @@ into high gear quickly.

- + Functors everywhere

diff --git a/doc/html/phoenix/starter_kit/lazy_functions.html b/doc/html/phoenix/starter_kit/lazy_functions.html index c8b5f82..0c0774c 100644 --- a/doc/html/phoenix/starter_kit/lazy_functions.html +++ b/doc/html/phoenix/starter_kit/lazy_functions.html @@ -52,7 +52,7 @@ function<is_odd_impl> is_odd;

- + Things to note:
@@ -82,7 +82,7 @@ (See function.cpp)

- + Predefined Lazy Functions
diff --git a/doc/html/phoenix/starter_kit/lazy_operators.html b/doc/html/phoenix/starter_kit/lazy_operators.html index 5edf714..b3f0349 100644 --- a/doc/html/phoenix/starter_kit/lazy_operators.html +++ b/doc/html/phoenix/starter_kit/lazy_operators.html @@ -76,7 +76,7 @@

- + First Practical Example
diff --git a/doc/html/phoenix/starter_kit/values.html b/doc/html/phoenix/starter_kit/values.html index e4b4a1d..cc75299 100644 --- a/doc/html/phoenix/starter_kit/values.html +++ b/doc/html/phoenix/starter_kit/values.html @@ -39,7 +39,7 @@ World".

- + Lazy Evaluation

@@ -71,7 +71,7 @@ anything and defers the evaluation for later.

- + Callbacks

diff --git a/doc/modules/core.qbk b/doc/modules/core.qbk index d98d43e..38b5586 100644 --- a/doc/modules/core.qbk +++ b/doc/modules/core.qbk @@ -130,9 +130,9 @@ Here are some sample preset definitions of `arg1`..`argN` namespace placeholders { - expression::argument<0>::type const arg1 = {}; - expression::argument<1>::type const arg2 = {}; - expression::argument<2>::type const arg3 = {}; + expression::argument<1>::type const arg1 = {}; + expression::argument<2>::type const arg2 = {}; + expression::argument<3>::type const arg3 = {}; } and its __bll__ `_1`..`_N` style counterparts: @@ -140,9 +140,9 @@ and its __bll__ `_1`..`_N` style counterparts: namespace placeholders { - expression::argument<0>::type const _1 = {}; - expression::argument<1>::type const _2 = {}; - expression::argument<2>::type const _3 = {}; + expression::argument<1>::type const _1 = {}; + expression::argument<2>::type const _2 = {}; + expression::argument<3>::type const _3 = {}; } [note You can set `BOOST_PHOENIX_ARG_LIMIT`, the predefined maximum @@ -153,7 +153,7 @@ placeholder index. By default, `BOOST_PHOENIX_ARG_LIMIT` is set to `BOOST_PHOENI When appropriate, you can define your own `argument` names. For example: - expression::argument<0>::type x; // note zero based index + expression::argument<1>::type x; // note one based index `x` may now be used as a parameter to a lazy function: diff --git a/example/adapted_echo_server.cpp b/example/adapted_echo_server.cpp index 813d5fe..73d8d56 100644 --- a/example/adapted_echo_server.cpp +++ b/example/adapted_echo_server.cpp @@ -7,14 +7,19 @@ #include #include + +#define BOOST_PHOENIX_NO_PREDEFINED_TERMINALS + #include #include namespace phx = boost::phoenix; using boost::phoenix::ref; +/* using boost::phoenix::lambda; using boost::phoenix::arg_names::_1; +*/ BOOST_PHOENIX_ADAPT_FUNCTION(void, read, boost::asio::async_read, 4) BOOST_PHOENIX_ADAPT_FUNCTION(void, write, boost::asio::async_write, 3) @@ -41,6 +46,9 @@ int main(int argc, char* argv[]) return 1; } + phx::lambda_type lambda; + phx::arg_names::_1_type _1; + boost::asio::io_service io_service; boost::asio::ip::tcp::acceptor acceptor(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), std::atoi(argv[1]))); boost::asio::ip::tcp::socket socket(io_service);