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 @@
Copyright © 2002-2005, 2010 Joel de Guzman, Dan Marsden, 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)
@@ -143,7 +143,7 @@@@ -162,7 +162,7 @@
![]()
- + 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 @@
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.
@@ -148,7 +148,7 @@ Statement Additionally, we want all the operator() overloads of the regular actor.
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
@@ -77,7 +77,7 @@ };
@@ -187,7 +187,7 @@ all information necessary to evaluate the given expression.
Table 1.10. Context Concept Requirements
+Table 1.10. Context Concept Requirements
@@ -304,7 +304,7 @@ such as local variables, etc.
@@ -343,7 +343,7 @@ on actions.
struct evaluator @@ -374,7 +374,7 @@ }
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 @@
@@ -186,7 +186,7 @@ you include this grammar gets extended by various expressions.
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
@@ -53,7 +53,7 @@ to create Phoenix Expressions
BOOST_PHOENIX_DEFINE_EXPRESSION( @@ -64,7 +64,7 @@ )
@@ -112,13 +112,13 @@
This macros also adds a specialization for meta_grammar::case_<tag::name>.
#include <boost/phoenix/core/expression.hpp>
@@ -143,7 +143,7 @@ BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG
@@ -152,7 +152,7 @@ to create Phoenix Expressions
BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG( @@ -165,7 +165,7 @@ )
#include <boost/phoenix/core/expression.hpp>
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 ownargumentnames. For example: -expression::argument<0>::type x; // note zero based index +expression::argument<1>::type x; // note one based index
xmay 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.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);