Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71227 - in trunk: boost boost/phoenix boost/phoenix/bind boost/phoenix/bind/detail boost/phoenix/core boost/phoenix/core/detail boost/phoenix/core/detail/preprocessed boost/phoenix/function boost/phoenix/function/detail boost/phoenix/function/detail/preprocessed boost/phoenix/operator boost/phoenix/operator/detail boost/phoenix/operator/detail/preprocessed boost/phoenix/operator/preprocessed boost/phoenix/scope boost/phoenix/statement boost/phoenix/statement/detail boost/phoenix/statement/detail/preprocessed boost/phoenix/stdlib boost/phoenix/stl boost/phoenix/stl/algorithm boost/phoenix/stl/container boost/phoenix/stl/container/detail boost/spirit/home/support libs/phoenix/doc libs/phoenix/doc/html libs/phoenix/doc/html/phoenix libs/phoenix/doc/html/phoenix/examples libs/phoenix/doc/html/phoenix/inside libs/phoenix/doc/html/phoenix/inside/expression libs/phoenix/doc/html/phoenix/modules libs/phoenix/doc/html/phoenix/modules/bind libs/phoenix/doc/html/phoenix/modules/core libs/phoenix/doc/html/phoenix/modules/function libs/phoenix/doc/html/phoenix/modules/function/adapting_functions libs/phoenix/doc/html/phoenix/modules/stl libs/phoenix/doc/html/phoenix/starter_kit libs/phoenix/doc/html/phoenix/what_s_new libs/phoenix/doc/inside libs/phoenix/doc/modules libs/phoenix/example libs/phoenix/preprocess libs/phoenix/test libs/phoenix/test/bind libs/phoenix/test/boost_bind_compatibility libs/phoenix/test/function libs/phoenix/test/operator libs/phoenix/test/scope libs/spirit/test/karma libs/spirit/test/lex libs/spirit/test/qi
From: thom.heller_at_[hidden]
Date: 2011-04-13 15:10:19


Author: theller
Date: 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
New Revision: 71227
URL: http://svn.boost.org/trac/boost/changeset/71227

Log:
[phoenix]
    - Added documention for the function adaption macros
    - Added the What's new section
    - Fixed some bugs
    - Added basic support for phx2 result type deduction, not in production yet

[spirit]
    - Made necessary changes that reflect latest phoenix internal changes

Added:
   trunk/boost/phoenix/bind/bind_function.hpp (contents, props changed)
   trunk/boost/phoenix/bind/bind_function_object.hpp (contents, props changed)
   trunk/boost/phoenix/bind/bind_member_function.hpp (contents, props changed)
   trunk/boost/phoenix/bind/bind_member_variable.hpp (contents, props changed)
   trunk/boost/phoenix/bind/detail/
   trunk/boost/phoenix/bind/detail/function_ptr.hpp (contents, props changed)
   trunk/boost/phoenix/bind/detail/member_function_ptr.hpp (contents, props changed)
   trunk/boost/phoenix/bind/detail/member_variable.hpp (contents, props changed)
   trunk/boost/phoenix/core/detail/function_eval.hpp (contents, props changed)
   trunk/boost/phoenix/core/detail/phx2_result.hpp (contents, props changed)
   trunk/boost/phoenix/function/adapt_callable.hpp (contents, props changed)
   trunk/boost/phoenix/stl/cmath.hpp
      - copied, changed from r71194, /trunk/boost/phoenix/stdlib/cmath.hpp
   trunk/libs/phoenix/doc/html/phoenix/inside/expression/boilerplate_macros.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_function_objects.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable_nullary.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable_vararg.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function_nullary.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function_vararg.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable_nullary.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable_vararg.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function_nullary.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function_vararg.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/what_s_new/
   trunk/libs/phoenix/doc/html/phoenix/what_s_new.html (contents, props changed)
   trunk/libs/phoenix/doc/html/phoenix/what_s_new/phoenix_3_0.html (contents, props changed)
   trunk/libs/phoenix/doc/what_s_new.qbk (contents, props changed)
   trunk/libs/phoenix/example/generator.cpp (contents, props changed)
   trunk/libs/phoenix/test/bind/bind_function_object_tests_phx2.cpp (contents, props changed)
   trunk/libs/phoenix/test/function/adapt_function.cpp (contents, props changed)
   trunk/libs/phoenix/test/function/function_tests_phx2.cpp (contents, props changed)
   trunk/libs/phoenix/test/scope/lambda_tests_phx2.cpp (contents, props changed)
Removed:
   trunk/boost/phoenix/function/function_handling.hpp
   trunk/boost/phoenix/stdlib/
Text files modified:
   trunk/boost/phoenix.hpp | 4
   trunk/boost/phoenix/bind.hpp | 5
   trunk/boost/phoenix/core/actor.hpp | 4
   trunk/boost/phoenix/core/detail/actor_operator.hpp | 2
   trunk/boost/phoenix/core/detail/actor_result_of.hpp | 4
   trunk/boost/phoenix/core/detail/expression.hpp | 6
   trunk/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp | 16
   trunk/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp | 36 +-
   trunk/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp | 56 +-
   trunk/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp | 76 ++--
   trunk/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp | 96 +++---
   trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp | 4
   trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp | 4
   trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp | 4
   trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp | 4
   trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp | 4
   trunk/boost/phoenix/core/expression.hpp | 9
   trunk/boost/phoenix/core/is_nullary.hpp | 26 +
   trunk/boost/phoenix/core/limits.hpp | 6
   trunk/boost/phoenix/core/reference.hpp | 48 +++
   trunk/boost/phoenix/core/terminal.hpp | 4
   trunk/boost/phoenix/core/value.hpp | 9
   trunk/boost/phoenix/function.hpp | 5
   trunk/boost/phoenix/function/adapt_function.hpp | 78 +++-
   trunk/boost/phoenix/function/detail/function_operator.hpp | 6
   trunk/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp | 60 ++--
   trunk/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp | 120 ++++----
   trunk/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp | 180 ++++++------
   trunk/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp | 240 ++++++++--------
   trunk/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp | 300 ++++++++++----------
   trunk/boost/phoenix/function/function.hpp | 11
   trunk/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp | 10
   trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp | 58 +-
   trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp | 118 ++++----
   trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp | 178 ++++++------
   trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp | 238 ++++++++--------
   trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp | 298 ++++++++++----------
   trunk/boost/phoenix/operator/member.hpp | 6
   trunk/boost/phoenix/operator/preprocessed/member_10.hpp | 4
   trunk/boost/phoenix/operator/preprocessed/member_20.hpp | 4
   trunk/boost/phoenix/operator/preprocessed/member_30.hpp | 4
   trunk/boost/phoenix/operator/preprocessed/member_40.hpp | 4
   trunk/boost/phoenix/operator/preprocessed/member_50.hpp | 4
   trunk/boost/phoenix/phoenix.hpp | 4
   trunk/boost/phoenix/scope/local_variable.hpp | 8
   trunk/boost/phoenix/scope/scoped_environment.hpp | 12
   trunk/boost/phoenix/statement/detail/catch_push_back.hpp | 12
   trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp | 108 +++---
   trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp | 228 +++++++-------
   trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp | 348 +++++++++++-----------
   trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp | 468 +++++++++++++++---------------
   trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp | 588 ++++++++++++++++++++--------------------
   trunk/boost/phoenix/statement/switch.hpp | 12
   trunk/boost/phoenix/statement/try_catch.hpp | 18
   trunk/boost/phoenix/stl/algorithm/iteration.hpp | 10
   trunk/boost/phoenix/stl/algorithm/querying.hpp | 68 ++--
   trunk/boost/phoenix/stl/algorithm/transformation.hpp | 142 ++++----
   trunk/boost/phoenix/stl/cmath.hpp | 4
   trunk/boost/phoenix/stl/container/container.hpp | 93 +++---
   trunk/boost/phoenix/stl/container/detail/container.hpp | 12
   trunk/boost/spirit/home/support/meta_compiler.hpp | 1
   trunk/boost/spirit/home/support/terminal.hpp | 12
   trunk/boost/spirit/home/support/terminal_expression.hpp | 12
   trunk/libs/phoenix/doc/Jamfile | 8
   trunk/libs/phoenix/doc/html/index.html | 34 +-
   trunk/libs/phoenix/doc/html/phoenix-doc_HTML.manifest | 9
   trunk/libs/phoenix/doc/html/phoenix/basics.html | 10
   trunk/libs/phoenix/doc/html/phoenix/examples/extending_actors.html | 8
   trunk/libs/phoenix/doc/html/phoenix/inside.html | 8
   trunk/libs/phoenix/doc/html/phoenix/inside/actions.html | 8
   trunk/libs/phoenix/doc/html/phoenix/inside/actor.html | 18
   trunk/libs/phoenix/doc/html/phoenix/inside/expression.html | 24 -
   trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html | 10
   trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html | 10
   trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html | 10
   trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html | 10
   trunk/libs/phoenix/doc/html/phoenix/introduction.html | 6
   trunk/libs/phoenix/doc/html/phoenix/modules.html | 4
   trunk/libs/phoenix/doc/html/phoenix/modules/bind.html | 16
   trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_functions.html | 8
   trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_functions.html | 2
   trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_variables.html | 2
   trunk/libs/phoenix/doc/html/phoenix/modules/core/arguments.html | 8
   trunk/libs/phoenix/doc/html/phoenix/modules/core/references.html | 4
   trunk/libs/phoenix/doc/html/phoenix/modules/core/values.html | 2
   trunk/libs/phoenix/doc/html/phoenix/modules/function.html | 12
   trunk/libs/phoenix/doc/html/phoenix/modules/operator.html | 18
   trunk/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html | 8
   trunk/libs/phoenix/doc/html/phoenix/modules/stl/container.html | 4
   trunk/libs/phoenix/doc/html/phoenix/organization.html | 6
   trunk/libs/phoenix/doc/html/phoenix/starter_kit.html | 2
   trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html | 4
   trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html | 2
   trunk/libs/phoenix/doc/html/phoenix/starter_kit/values.html | 4
   trunk/libs/phoenix/doc/inside/expression.qbk | 4
   trunk/libs/phoenix/doc/modules/bind.qbk | 27 +
   trunk/libs/phoenix/doc/modules/function.qbk | 310 ++++++++++++++++++++
   trunk/libs/phoenix/doc/phoenix3.qbk | 1
   trunk/libs/phoenix/example/function.cpp | 6
   trunk/libs/phoenix/preprocess/wave.cfg | 6
   trunk/libs/phoenix/test/Jamfile | 6
   trunk/libs/phoenix/test/bind/bind_member_variable_tests.cpp | 2
   trunk/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp | 2
   trunk/libs/phoenix/test/boost_bind_compatibility/bind_stdcall_mf_test.cpp | 2
   trunk/libs/phoenix/test/operator/member.cpp | 16
   trunk/libs/phoenix/test/scope/this.cpp | 2
   trunk/libs/spirit/test/karma/attribute.cpp | 3
   trunk/libs/spirit/test/lex/dedent_handling_phoenix.cpp | 2
   trunk/libs/spirit/test/qi/attribute1.cpp | 2
   trunk/libs/spirit/test/qi/attribute2.cpp | 2
   trunk/libs/spirit/test/qi/repeat.cpp | 1
   111 files changed, 2812 insertions(+), 2374 deletions(-)

Modified: trunk/boost/phoenix.hpp
==============================================================================
--- trunk/boost/phoenix.hpp (original)
+++ trunk/boost/phoenix.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -8,10 +8,6 @@
 
 #ifndef BOOST_PHOENIX_HPP
 
-#ifdef BOOST_PHOENIX_USE_V2_OVER_V3
-#include <boost/spirit/home/phoenix.hpp>
-#else
 #include <boost/phoenix/phoenix.hpp>
-#endif
 
 #endif

Modified: trunk/boost/phoenix/bind.hpp
==============================================================================
--- trunk/boost/phoenix/bind.hpp (original)
+++ trunk/boost/phoenix/bind.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -11,7 +11,10 @@
 #include <boost/spirit/home/phoenix/core.hpp>
 #else
 #include <boost/phoenix/version.hpp>
-#include <boost/phoenix/bind/bind.hpp>
+#include <boost/phoenix/bind/bind_function.hpp>
+#include <boost/phoenix/bind/bind_function_object.hpp>
+#include <boost/phoenix/bind/bind_member_function.hpp>
+#include <boost/phoenix/bind/bind_member_variable.hpp>
 #endif
 
 #endif

Added: trunk/boost/phoenix/bind/bind_function.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/bind_function.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,93 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !BOOST_PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_BIND_BIND_FUNCTION_HPP
+#define PHOENIX_BIND_BIND_FUNCTION_HPP
+
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
+#include <boost/phoenix/bind/detail/function_ptr.hpp>
+
+namespace boost { namespace phoenix {
+
+ template <
+ typename RT
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<0, RT, RT(*)()>
+ >::type const
+ bind(RT(*f)())
+ {
+ typedef detail::function_ptr<0, RT, RT(*)()> fp_type;
+ return detail::expression::function_eval<fp_type>::make(fp_type(f));
+ }
+
+ template <
+ typename RT
+ , typename T0
+ , typename A0
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<1, RT, RT(*)(T0 &)>
+ , A0
+ >::type const
+ bind(RT(*f)(T0 &), A0 const & a0)
+ {
+ typedef detail::function_ptr<1, RT, RT(*)(T0 &)> fp_type;
+ return detail::expression::function_eval<fp_type, A0>::make(fp_type(f), a0);
+ }
+
+#define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (2, BOOST_PP_DEC(BOOST_PHOENIX_ACTOR_LIMIT), \
+ <boost/phoenix/bind/bind_function.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+
+}}
+
+#endif
+
+#else
+
+ template <
+ typename RT
+ , BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, typename T)
+ , BOOST_PHOENIX_typename_A
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ >
+ , BOOST_PHOENIX_A
+ >::type const
+ bind(
+ RT(*f)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ , BOOST_PHOENIX_A_const_ref_a
+ )
+ {
+ typedef detail::function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , BOOST_PHOENIX_A
+ >::make(
+ fp_type(f)
+ , BOOST_PHOENIX_a
+ );
+ }
+
+#endif

Added: trunk/boost/phoenix/bind/bind_function_object.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/bind_function_object.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,54 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !BOOST_PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_BIND_BIND_FUNCTION_OBJECT_HPP
+#define PHOENIX_BIND_BIND_FUNCTION_OBJECT_HPP
+
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
+
+namespace boost { namespace phoenix {
+ template <typename F>
+ inline
+ typename detail::expression::function_eval<F>::type const
+ bind(F f)
+ {
+ return detail::expression::function_eval<F>::make(f);
+ }
+
+#define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (1, BOOST_PP_DEC(BOOST_PHOENIX_ACTOR_LIMIT), \
+ <boost/phoenix/bind/bind_function_object.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+
+}}
+
+#endif
+
+#else
+
+ template <
+ typename F
+ , BOOST_PHOENIX_typename_A
+ >
+ inline
+ typename detail::expression::function_eval<
+ F
+ , BOOST_PHOENIX_A
+ >::type const
+ bind(F f, BOOST_PHOENIX_A_const_ref_a)
+ {
+ return
+ detail::expression::function_eval<F, BOOST_PHOENIX_A>::make(
+ f
+ , BOOST_PHOENIX_a
+ );
+ }
+
+#endif

Added: trunk/boost/phoenix/bind/bind_member_function.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/bind_member_function.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,220 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !BOOST_PHOENIX_IS_ITERATING
+
+#ifndef PHOENIX_BIND_BIND_MEMBER_FUNCTION_HPP
+#define PHOENIX_BIND_BIND_MEMBER_FUNCTION_HPP
+
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/reference.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
+#include <boost/phoenix/bind/detail/member_function_ptr.hpp>
+
+namespace boost { namespace phoenix
+{
+
+ template <typename RT, typename ClassT, typename ClassA>
+ inline typename detail::expression::function_eval<
+ detail::member_function_ptr<0, RT, RT(ClassT::*)()>
+ , ClassA
+ >::type const
+ bind(RT(ClassT::*f)(), ClassA const& obj)
+ {
+ typedef detail::member_function_ptr<0, RT, RT(ClassT::*)()> fp_type;
+ return
+ detail::expression::function_eval<fp_type, ClassA>::make(
+ fp_type(f)
+ , obj
+ );
+ }
+
+ template <typename RT, typename ClassT, typename ClassA>
+ inline typename detail::expression::function_eval<
+ detail::member_function_ptr<0, RT, RT(ClassT::*)() const>
+ , ClassA
+ >::type const
+ bind(RT(ClassT::*f)() const, ClassA const& obj)
+ {
+ typedef
+ detail::member_function_ptr<0, RT, RT(ClassT::*)() const>
+ fp_type;
+ return
+ detail::expression::function_eval<fp_type, ClassA>::make(
+ fp_type(f)
+ , obj
+ );
+ }
+
+ template <typename RT, typename ClassT>
+ inline typename detail::expression::function_eval<
+ detail::member_function_ptr<0, RT, RT(ClassT::*)()>
+ , ClassT
+ >::type const
+ bind(RT(ClassT::*f)(), ClassT& obj)
+ {
+ typedef detail::member_function_ptr<0, RT, RT(ClassT::*)()> fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , ClassT
+ >::make(
+ fp_type(f)
+ , obj
+ );
+ }
+
+ template <typename RT, typename ClassT>
+ inline typename detail::expression::function_eval<
+ detail::member_function_ptr<0, RT, RT(ClassT::*)() const>
+ , ClassT
+ >::type const
+ bind(RT(ClassT::*f)() const, ClassT& obj)
+ {
+ typedef detail::member_function_ptr<0, RT, RT(ClassT::*)() const> fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , ClassT
+ >::make(
+ fp_type(f)
+ , obj
+ );
+ }
+
+#define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (1, BOOST_PP_DEC(BOOST_PHOENIX_ACTOR_LIMIT), \
+ <boost/phoenix/bind/bind_member_function.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+
+}}
+
+#endif
+
+#else
+
+ template <
+ typename RT
+ , typename ClassT
+ , BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, typename T)
+ , typename ClassA
+ , BOOST_PHOENIX_typename_A
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::member_function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(ClassT::*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ >
+ , ClassA
+ , BOOST_PHOENIX_A
+ >::type const
+ bind(
+ RT(ClassT::*f)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ , ClassA const & obj
+ , BOOST_PHOENIX_A_const_ref_a
+ )
+ {
+ typedef detail::member_function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(ClassT::*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , ClassA
+ , BOOST_PHOENIX_A
+ >::make(
+ fp_type(f)
+ , obj
+ , BOOST_PHOENIX_a
+ );
+ }
+
+ template <
+ typename RT
+ , typename ClassT
+ , BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, typename T)
+ , typename ClassA
+ , BOOST_PHOENIX_typename_A
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::member_function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(ClassT::*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T)) const
+ >
+ , ClassA
+ , BOOST_PHOENIX_A
+ >::type const
+ bind(
+ RT(ClassT::*f)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T)) const
+ , ClassA const & obj
+ , BOOST_PHOENIX_A_const_ref_a
+ )
+ {
+ typedef detail::member_function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(ClassT::*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T)) const
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , ClassA
+ , BOOST_PHOENIX_A
+ >::make(
+ fp_type(f)
+ , obj
+ , BOOST_PHOENIX_a
+ );
+ }
+
+ template <
+ typename RT
+ , typename ClassT
+ , BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, typename T)
+ , BOOST_PHOENIX_typename_A
+ >
+ inline
+ typename detail::expression::function_eval<
+ detail::member_function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(ClassT::*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ >
+ , ClassT
+ , BOOST_PHOENIX_A
+ >::type const
+ bind(
+ RT(ClassT::*f)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ , ClassT & obj
+ , BOOST_PHOENIX_A_const_ref_a
+ )
+ {
+ typedef detail::member_function_ptr<
+ BOOST_PHOENIX_ITERATION
+ , RT
+ , RT(ClassT::*)(BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, T))
+ > fp_type;
+ return
+ detail::expression::function_eval<
+ fp_type
+ , ClassT
+ , BOOST_PHOENIX_A
+ >::make(
+ fp_type(f)
+ , obj
+ , BOOST_PHOENIX_a
+ );
+ }
+
+#endif
+

Added: trunk/boost/phoenix/bind/bind_member_variable.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/bind_member_variable.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,49 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP
+#define PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP
+
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
+#include <boost/phoenix/bind/detail/member_variable.hpp>
+
+namespace boost { namespace phoenix
+{
+ template <typename RT, typename ClassT, typename ClassA>
+ inline typename
+ detail::expression::function_eval<
+ detail::member_variable<RT, RT ClassT::*>
+ , ClassA
+ >::type const
+ bind(RT ClassT::*mp, ClassA const& obj)
+ {
+ typedef detail::member_variable<RT, RT ClassT::*> mp_type;
+ return
+ detail::expression::function_eval<mp_type, ClassA>
+ ::make(mp_type(mp), obj);
+ }
+
+ template <typename RT, typename ClassT>
+ inline typename
+ detail::expression::function_eval<
+ detail::member_variable<RT, RT ClassT::*>
+ , ClassT
+ >::type const
+ bind(RT ClassT::*mp, ClassT& obj)
+ {
+ typedef detail::member_variable<RT, RT ClassT::*> mp_type;
+ return
+ detail::expression::function_eval<
+ mp_type
+ , ClassT
+ >::make(mp_type(mp), obj);
+ }
+
+}}
+
+#endif

Added: trunk/boost/phoenix/bind/detail/function_ptr.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/detail/function_ptr.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,126 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !BOOST_PHOENIX_IS_ITERATING
+
+#ifndef BOOST_PHOENIX_BIND_DETAIL_FUNCTION_PTR_HPP
+#define BOOST_PHOENIX_BIND_DETAIL_FUNCTION_PTR_HPP
+
+#include <boost/phoenix/core/limits.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+
+namespace boost { namespace phoenix { namespace detail
+{
+ template <int N, typename Dummy = void>
+ struct function_ptr_impl
+ {
+ template <typename RT, typename FP>
+ struct impl;
+ };
+
+ template <int N, typename RT, typename FP>
+ struct function_ptr : function_ptr_impl<N>::template impl<RT, FP>
+ {
+ typedef typename function_ptr_impl<N>::template impl<RT, FP> base;
+
+ function_ptr(FP fp)
+ : base(fp) {}
+
+ using base::fp;
+
+ bool operator==(function_ptr const & rhs) const
+ {
+ return fp == rhs.fp;
+ }
+
+ template <int M, typename RhsRT, typename RhsFP>
+ bool operator==(function_ptr<M, RhsRT, RhsFP> const & rhs) const
+ {
+ return false;
+ }
+
+ };
+
+ template <typename Dummy>
+ struct function_ptr_impl<0, Dummy>
+ {
+ template <typename RT, typename FP>
+ struct impl
+ {
+ typedef RT result_type;
+
+ impl(FP fp)
+ : fp(fp) {}
+
+ RT operator()() const
+ {
+ return fp();
+ }
+
+ FP fp;
+ };
+ };
+
+ template <typename Dummy>
+ struct function_ptr_impl<1, Dummy>
+ {
+ template <typename RT, typename FP>
+ struct impl
+ {
+ typedef RT result_type;
+
+ impl(FP fp)
+ : fp(fp) {}
+
+ template <typename A>
+ RT operator()(A &a) const
+ {
+ return fp(a);
+ }
+
+ FP fp;
+ };
+ };
+
+#define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (2, BOOST_PHOENIX_COMPOSITE_LIMIT, \
+ <boost/phoenix/bind/detail/function_ptr.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+
+}}} // namespace boost::phoenix::detail
+
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Preprocessor vertical repetition code
+//
+///////////////////////////////////////////////////////////////////////////////
+#else // defined(BOOST_PP_IS_ITERATING)
+
+ template <typename Dummy>
+ struct function_ptr_impl<BOOST_PHOENIX_ITERATION, Dummy>
+ {
+ template <typename RT, typename FP>
+ struct impl
+ {
+ typedef RT result_type;
+
+ impl(FP fp)
+ : fp(fp) {}
+
+ template <BOOST_PHOENIX_typename_A>
+ RT operator()(BOOST_PHOENIX_A_ref_a) const
+ {
+ return fp(BOOST_PHOENIX_a);
+ }
+
+ FP fp;
+ };
+ };
+
+#endif // defined(BOOST_PP_IS_ITERATING)

Added: trunk/boost/phoenix/bind/detail/member_function_ptr.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/detail/member_function_ptr.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,122 @@
+/*=============================================================================
+Copyright (c) 2001-2007 Joel de Guzman
+
+Distributed under the Boost Software License, Version 1.0. (See accompanying
+file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#if !BOOST_PHOENIX_IS_ITERATING
+
+#ifndef BOOST_PHOENIX_BIND_DETAIL_MEMBER_FUNCTION_PTR_HPP
+#define BOOST_PHOENIX_BIND_DETAIL_MEMBER_FUNCTION_PTR_HPP
+
+#include <boost/phoenix/core/limits.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+
+namespace boost { namespace phoenix { namespace detail
+{
+ template <int N>
+ struct member_function_ptr_impl
+ {
+ template <typename RT, typename FP>
+ struct impl;
+ };
+
+ template <int N, typename RT, typename FP>
+ struct member_function_ptr
+ : member_function_ptr_impl<N>::template impl<RT, FP>
+ {
+ typedef typename member_function_ptr_impl<N>::
+ template impl<RT, FP> base;
+ member_function_ptr(FP fp)
+ : base(fp) {}
+
+ using base::fp;
+
+ bool operator==(member_function_ptr const & rhs) const
+ {
+ return fp == rhs.fp;
+ }
+
+ template <int M, typename RhsRT, typename RhsFP>
+ bool operator==(member_function_ptr<M, RhsRT, RhsFP> const & rhs) const
+ {
+ return false;
+ }
+ };
+
+ BOOST_PROTO_USE_GET_POINTER();
+
+ template <>
+ struct member_function_ptr_impl<0>
+ {
+ template <typename RT, typename FP>
+ struct impl
+ {
+ typedef RT result_type;
+
+ impl(FP fp)
+ : fp(fp) {}
+
+ template <typename Class>
+ RT operator()(Class& obj) const
+ {
+ typedef typename proto::detail::classtypeof<FP>::type class_type;
+ return (BOOST_PROTO_GET_POINTER(class_type, obj) ->*fp)();
+ }
+
+ template <typename Class>
+ RT operator()(Class* obj) const
+ {
+ return (obj->*fp)();
+ }
+
+ FP fp;
+ };
+ };
+
+#define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (1, BOOST_PHOENIX_COMPOSITE_LIMIT, \
+ <boost/phoenix/bind/detail/member_function_ptr.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+
+}}} // namespace boost::phoenix::detail
+
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Preprocessor vertical repetition code
+//
+///////////////////////////////////////////////////////////////////////////////
+#else
+
+ template <>
+ struct member_function_ptr_impl<BOOST_PHOENIX_ITERATION>
+ {
+ template <typename RT, typename FP>
+ struct impl
+ {
+ typedef RT result_type;
+
+ impl(FP fp)
+ : fp(fp) {}
+
+ template <typename Class, BOOST_PHOENIX_typename_A>
+ RT operator()(Class& obj, BOOST_PHOENIX_A_const_ref_a) const
+ {
+ typedef typename proto::detail::classtypeof<FP>::type class_type;
+ return (BOOST_PROTO_GET_POINTER(class_type, obj)->*fp)(BOOST_PHOENIX_a);
+ }
+
+ template <typename Class, BOOST_PHOENIX_typename_A>
+ RT operator()(Class* obj, BOOST_PHOENIX_A_const_ref_a) const
+ {
+ return (obj->*fp)(BOOST_PHOENIX_a);
+ }
+
+ FP fp;
+ };
+ };
+
+#endif // defined(BOOST_PP_IS_ITERATING)

Added: trunk/boost/phoenix/bind/detail/member_variable.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/bind/detail/member_variable.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,75 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#ifndef BOOST_PHOENIX_CORE_DETAIL_MEMBER_VARIABLE_HPP
+#define BOOST_PHOENIX_CORE_DETAIL_MEMBER_VARIABLE_HPP
+
+#include <boost/proto/detail/decltype.hpp>
+
+namespace boost { namespace phoenix { namespace detail {
+
+ BOOST_PROTO_USE_GET_POINTER();
+
+ template <typename RT, typename MP>
+ struct member_variable
+ {
+ template <typename Sig>
+ struct result;
+
+ template <typename This, typename Class>
+ struct result<This(Class)>
+ : result<This(Class const &)>
+ {};
+
+ template <typename This, typename Class>
+ struct result<This(Class &)>
+ {
+ typedef typename boost::mpl::if_c<
+ boost::is_const<
+ typename boost::remove_pointer<
+ typename boost::remove_reference<Class>::type
+ >::type
+ >::value
+ , const RT&
+ , RT&
+ >::type
+ type;
+ };
+
+ member_variable(MP mp)
+ : mp(mp) {}
+
+ template <typename Class>
+ RT& operator()(Class& obj) const
+ {
+ typedef typename proto::detail::classtypeof<MP>::type class_type;
+ return (BOOST_PROTO_GET_POINTER(class_type, obj)->*mp);
+ }
+
+ template <typename Class>
+ RT& operator()(Class* obj) const
+ {
+ return obj->*mp;
+ }
+
+ template <typename Class>
+ RT const& operator()(Class const& obj) const
+ {
+ typedef typename proto::detail::classtypeof<MP>::type class_type;
+ return (BOOST_PROTO_GET_POINTER(class_type, obj)->*mp);
+ }
+
+ template <typename Class>
+ RT const& operator()(Class const* obj) const
+ {
+ return obj->*mp;
+ }
+
+ MP mp;
+ };
+}}}
+
+#endif

Modified: trunk/boost/phoenix/core/actor.hpp
==============================================================================
--- trunk/boost/phoenix/core/actor.hpp (original)
+++ trunk/boost/phoenix/core/actor.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -120,11 +120,11 @@
     struct actor
     {
         typedef typename
- mpl::eval_if<
+ mpl::eval_if_c<
                 mpl::or_<
                     is_custom_terminal<Expr>
                   , mpl::bool_<is_placeholder<Expr>::value>
- >
+ >::value
               , proto::terminal<Expr>
               , mpl::identity<Expr>
>::type

Modified: trunk/boost/phoenix/core/detail/actor_operator.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/actor_operator.hpp (original)
+++ trunk/boost/phoenix/core/detail/actor_operator.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -63,7 +63,7 @@
                 env_type;
             env_type env = {this, BOOST_PHOENIX_a};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
 
         template <BOOST_PHOENIX_typename_A>

Modified: trunk/boost/phoenix/core/detail/actor_result_of.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/actor_result_of.hpp (original)
+++ trunk/boost/phoenix/core/detail/actor_result_of.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -60,8 +60,8 @@
         {
             typedef
                 // avoid calling result_of::actor when this is false
- typename mpl::eval_if<
- result_of::is_nullary<Expr>
+ typename mpl::eval_if_c<
+ result_of::is_nullary<Expr>::value
                   , nullary_actor_result<Expr>
                   , mpl::identity<detail::error_expecting_arguments>
>::type

Modified: trunk/boost/phoenix/core/detail/expression.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/expression.hpp (original)
+++ trunk/boost/phoenix/core/detail/expression.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -21,7 +21,6 @@
 #include <boost/preprocessor/tuple/elem.hpp>
 #include <boost/preprocessor/enum_params.hpp>
 #include <boost/preprocessor/repeat_from_to.hpp>
-#include <iostream>
 
 #define BOOST_PHOENIX_DEFINE_EXPRESSION(NAME_SEQ, SEQ) \
     BOOST_PHOENIX_DEFINE_EXPRESSION_BASE( \
@@ -84,8 +83,9 @@
     namespace tag \
     { \
         struct BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(NAME_SEQ)) {}; \
- inline std::ostream &operator<<( \
- std::ostream & os \
+ template <typename Ostream> \
+ inline Ostream &operator<<( \
+ Ostream & os \
           , BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(NAME_SEQ))) \
         { \
             os << BOOST_PP_STRINGIZE( \

Added: trunk/boost/phoenix/core/detail/function_eval.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/core/detail/function_eval.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,176 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !BOOST_PHOENIX_IS_ITERATING
+#ifndef BOOST_PHOENIX_CORE_DETAIL_FUNCTION_EVAL_HPP
+#define BOOST_PHOENIX_CORE_DETAIL_FUNCTION_EVAL_HPP
+
+#include <boost/phoenix/core/limits.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+#include <boost/phoenix/core/call.hpp>
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/meta_grammar.hpp>
+#include <boost/phoenix/core/detail/phx2_result.hpp>
+#include <boost/utility/result_of.hpp>
+
+BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG(
+ (boost)(phoenix)(detail)(function_eval)
+ , (meta_grammar)
+ (meta_grammar)
+ , BOOST_PP_DEC(BOOST_PHOENIX_COMPOSITE_LIMIT)
+)
+
+namespace boost { namespace phoenix {
+ namespace detail
+ {
+ template <typename T>
+ T& help_rvalue_deduction(T& x)
+ {
+ return x;
+ }
+
+ template <typename T>
+ T const& help_rvalue_deduction(T const& x)
+ {
+ return x;
+ }
+
+ struct function_eval
+ {
+ template <typename Sig>
+ struct result;
+
+ template <typename This, typename F, typename Context>
+ struct result<This(F, Context)>
+ {
+ typedef typename
+ remove_reference<
+ typename boost::result_of<evaluator(F, Context)>::type
+ >::type
+ fn;
+
+ typedef typename boost::result_of<fn()>::type type;
+ };
+
+ template <typename F, typename Context>
+ typename result<function_eval(F const&, Context const&)>::type
+ operator()(F const & f, Context const & ctx) const
+ {
+ return eval(f, ctx)();
+ }
+
+ template <typename F, typename Context>
+ typename result<function_eval(F &, Context const&)>::type
+ operator()(F & f, Context const & ctx) const
+ {
+ return eval(f, ctx)();
+ }
+
+ #define PHOENIX_GET_ARG(z, n, data) \
+ typedef \
+ typename boost::result_of< \
+ evaluator( \
+ BOOST_PP_CAT(A, n) \
+ , Context \
+ ) \
+ >::type \
+ BOOST_PP_CAT(a, n);
+
+ #define PHOENIX_EVAL_ARG(z, n, data) \
+ help_rvalue_deduction(eval(BOOST_PP_CAT(a, n), ctx))
+
+ #define M0(z, n, data) \
+ typename proto::detail::uncvref<BOOST_PP_CAT(a, n)>::type
+
+ #define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (1, BOOST_PP_DEC(BOOST_PHOENIX_ACTOR_LIMIT), \
+ <boost/phoenix/core/detail/function_eval.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+
+ #undef PHOENIX_GET_ARG
+ #undef PHOENIX_EVAL_ARG
+ #undef M0
+
+ };
+
+ }
+
+ template <typename Dummy>
+ struct default_actions::when<detail::rule::function_eval, Dummy>
+ : phoenix::call<detail::function_eval>
+ {};
+}}
+
+#endif
+
+#else
+ template <
+ typename This
+ , typename F
+ , BOOST_PHOENIX_typename_A
+ , typename Context
+ >
+ struct result<This(F, BOOST_PHOENIX_A, Context)>
+ {
+ typedef typename
+ remove_reference<
+ typename boost::result_of<evaluator(F, Context)>::type
+ >::type
+ fn;
+
+ BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, PHOENIX_GET_ARG, _)
+
+ typedef typename
+ boost::result_of<fn(BOOST_PHOENIX_a)>::type
+ type;
+ /*
+ typedef typename
+ mpl::eval_if_c<
+ has_phx2_result<
+ fn
+ , BOOST_PP_ENUM(BOOST_PHOENIX_ITERATION, M0, _)
+ >::value
+ , boost::result_of<
+ fn(
+ BOOST_PHOENIX_a
+ )
+ >
+ , phx2_result<
+ fn
+ , BOOST_PHOENIX_a
+ >
+ >::type
+ type;
+ */
+ };
+
+ template <typename F, BOOST_PHOENIX_typename_A, typename Context>
+ typename result<
+ function_eval(
+ F const &
+ , BOOST_PHOENIX_A_ref
+ , Context const &
+ )
+ >::type
+ operator()(F const & f, BOOST_PHOENIX_A_ref_a, Context const & ctx) const
+ {
+ return eval(f, ctx)(BOOST_PP_ENUM(BOOST_PHOENIX_ITERATION, PHOENIX_EVAL_ARG, _));
+ }
+
+ template <typename F, BOOST_PHOENIX_typename_A, typename Context>
+ typename result<
+ function_eval(
+ F &
+ , BOOST_PHOENIX_A_ref
+ , Context const &
+ )
+ >::type
+ operator()(F & f, BOOST_PHOENIX_A_ref_a, Context const & ctx) const
+ {
+ return eval(f, ctx)(BOOST_PP_ENUM(BOOST_PHOENIX_ITERATION, PHOENIX_EVAL_ARG, _));
+ }
+#endif
+

Added: trunk/boost/phoenix/core/detail/phx2_result.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/core/detail/phx2_result.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,83 @@
+/*=============================================================================
+ Copyright (c) 2011 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)
+==============================================================================*/
+#if !BOOST_PHOENIX_IS_ITERATING
+#ifndef BOOST_PHOENIX_CORE_DETAIL_PHX2_RESULT_HPP
+#define BOOST_PHOENIX_CORE_DETAIL_PHX2_RESULT_HPP
+#include <boost/phoenix/core/limits.hpp>
+#include <boost/phoenix/support/iterate.hpp>
+#include <boost/mpl/has_xxx.hpp>
+
+namespace boost { namespace phoenix {
+ namespace detail
+ {
+ BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
+
+ template <typename Result>
+ struct has_phx2_result_impl
+ {
+ typedef char yes;
+ typedef char (&no)[2];
+
+ template <typename A>
+ static yes check(typename A::type *);
+
+
+ template <typename A>
+ static no check(...);
+
+ static bool const value = (sizeof(yes) == sizeof(check<Result>(0)));
+ typedef boost::mpl::bool_<value> type;
+ };
+
+ template <typename F, BOOST_PHOENIX_typename_A_void(BOOST_PP_DEC(BOOST_PHOENIX_COMPOSITE_LIMIT)), typename Dummy = void>
+ struct has_phx2_result
+ : mpl::false_
+ {};
+
+ template <typename F, BOOST_PHOENIX_typename_A_void(BOOST_PP_DEC(BOOST_PHOENIX_COMPOSITE_LIMIT)), typename Dummy = void>
+ struct phx2_result;
+
+ #define BOOST_PHOENIX_ITERATION_PARAMS \
+ (3, (1, BOOST_PP_DEC(BOOST_PHOENIX_COMPOSITE_LIMIT), \
+ <boost/phoenix/core/detail/phx2_result.hpp>))
+#include BOOST_PHOENIX_ITERATE()
+ }
+}}
+
+#endif
+
+#else
+
+ template <typename F, BOOST_PHOENIX_typename_A>
+ struct has_phx2_result<F, BOOST_PHOENIX_A>
+ : mpl::eval_if<
+ has_result_type<F>
+ , mpl::false_
+ , has_phx2_result_impl<typename F::template result<F(BOOST_PHOENIX_A)> >
+ >::type
+ {};
+
+
+ template <typename F, BOOST_PHOENIX_typename_A>
+ struct phx2_result<F, BOOST_PHOENIX_A>
+ {
+ typedef typename F::template result<BOOST_PHOENIX_A>::type type;
+ };
+
+ template <typename F, BOOST_PHOENIX_typename_A>
+ struct phx2_result<F, BOOST_PHOENIX_A_ref>
+ {
+ typedef typename F::template result<BOOST_PHOENIX_A>::type type;
+ };
+
+ template <typename F, BOOST_PHOENIX_typename_A>
+ struct phx2_result<F, BOOST_PHOENIX_A_const_ref>
+ {
+ typedef typename F::template result<BOOST_PHOENIX_A>::type type;
+ };
+
+#endif

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -51,7 +51,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
@@ -114,7 +114,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
@@ -177,7 +177,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
@@ -240,7 +240,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
@@ -303,7 +303,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
@@ -366,7 +366,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
@@ -429,7 +429,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
@@ -492,7 +492,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -51,7 +51,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
@@ -114,7 +114,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
@@ -177,7 +177,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
@@ -240,7 +240,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
@@ -303,7 +303,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
@@ -366,7 +366,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
@@ -429,7 +429,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
@@ -492,7 +492,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
@@ -555,7 +555,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
@@ -618,7 +618,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
@@ -681,7 +681,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
@@ -744,7 +744,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
@@ -807,7 +807,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
@@ -870,7 +870,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
@@ -933,7 +933,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
@@ -996,7 +996,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
@@ -1059,7 +1059,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
@@ -1122,7 +1122,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -51,7 +51,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
@@ -114,7 +114,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
@@ -177,7 +177,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
@@ -240,7 +240,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
@@ -303,7 +303,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
@@ -366,7 +366,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
@@ -429,7 +429,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
@@ -492,7 +492,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
@@ -555,7 +555,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
@@ -618,7 +618,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
@@ -681,7 +681,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
@@ -744,7 +744,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
@@ -807,7 +807,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
@@ -870,7 +870,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
@@ -933,7 +933,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
@@ -996,7 +996,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
@@ -1059,7 +1059,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
@@ -1122,7 +1122,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
@@ -1185,7 +1185,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
@@ -1248,7 +1248,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
@@ -1311,7 +1311,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &>::type
@@ -1374,7 +1374,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &>::type
@@ -1437,7 +1437,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &>::type
@@ -1500,7 +1500,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &>::type
@@ -1563,7 +1563,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &>::type
@@ -1626,7 +1626,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &>::type
@@ -1689,7 +1689,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &>::type
@@ -1752,7 +1752,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -51,7 +51,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
@@ -114,7 +114,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
@@ -177,7 +177,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
@@ -240,7 +240,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
@@ -303,7 +303,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
@@ -366,7 +366,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
@@ -429,7 +429,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
@@ -492,7 +492,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
@@ -555,7 +555,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
@@ -618,7 +618,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
@@ -681,7 +681,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
@@ -744,7 +744,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
@@ -807,7 +807,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
@@ -870,7 +870,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
@@ -933,7 +933,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
@@ -996,7 +996,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
@@ -1059,7 +1059,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
@@ -1122,7 +1122,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
@@ -1185,7 +1185,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
@@ -1248,7 +1248,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
@@ -1311,7 +1311,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &>::type
@@ -1374,7 +1374,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &>::type
@@ -1437,7 +1437,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &>::type
@@ -1500,7 +1500,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &>::type
@@ -1563,7 +1563,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &>::type
@@ -1626,7 +1626,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &>::type
@@ -1689,7 +1689,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &>::type
@@ -1752,7 +1752,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &>::type
@@ -1815,7 +1815,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &>::type
@@ -1878,7 +1878,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &>::type
@@ -1941,7 +1941,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &>::type
@@ -2004,7 +2004,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &>::type
@@ -2067,7 +2067,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &>::type
@@ -2130,7 +2130,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &>::type
@@ -2193,7 +2193,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &>::type
@@ -2256,7 +2256,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &>::type
@@ -2319,7 +2319,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &>::type
@@ -2382,7 +2382,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -51,7 +51,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 &>::type
@@ -114,7 +114,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 &>::type
@@ -177,7 +177,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 &>::type
@@ -240,7 +240,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 &>::type
@@ -303,7 +303,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 &>::type
@@ -366,7 +366,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 &>::type
@@ -429,7 +429,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 &>::type
@@ -492,7 +492,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 &>::type
@@ -555,7 +555,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 &>::type
@@ -618,7 +618,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 &>::type
@@ -681,7 +681,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 &>::type
@@ -744,7 +744,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 &>::type
@@ -807,7 +807,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 &>::type
@@ -870,7 +870,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 &>::type
@@ -933,7 +933,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 &>::type
@@ -996,7 +996,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 &>::type
@@ -1059,7 +1059,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 &>::type
@@ -1122,7 +1122,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 &>::type
@@ -1185,7 +1185,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 &>::type
@@ -1248,7 +1248,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 &>::type
@@ -1311,7 +1311,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 &>::type
@@ -1374,7 +1374,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 &>::type
@@ -1437,7 +1437,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 &>::type
@@ -1500,7 +1500,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 &>::type
@@ -1563,7 +1563,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 &>::type
@@ -1626,7 +1626,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 &>::type
@@ -1689,7 +1689,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 &>::type
@@ -1752,7 +1752,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 &>::type
@@ -1815,7 +1815,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 &>::type
@@ -1878,7 +1878,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 &>::type
@@ -1941,7 +1941,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 &>::type
@@ -2004,7 +2004,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 &>::type
@@ -2067,7 +2067,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 &>::type
@@ -2130,7 +2130,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 &>::type
@@ -2193,7 +2193,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 &>::type
@@ -2256,7 +2256,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 &>::type
@@ -2319,7 +2319,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 &>::type
@@ -2382,7 +2382,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 &>::type
@@ -2445,7 +2445,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 &>::type
@@ -2508,7 +2508,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 &>::type
@@ -2571,7 +2571,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 &>::type
@@ -2634,7 +2634,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 &>::type
@@ -2697,7 +2697,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 & , A44 &>::type
@@ -2760,7 +2760,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 & , A44 & , A45 &>::type
@@ -2823,7 +2823,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 & , A44 & , A45 & , A46 &>::type
@@ -2886,7 +2886,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 & , A44 & , A45 & , A46 & , A47 &>::type
@@ -2949,7 +2949,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 & , A44 & , A45 & , A46 & , A47 & , A48 &>::type
@@ -3012,7 +3012,7 @@
                 env_type;
             env_type env = {this, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48 , a49};
             
- return phoenix::eval(*this, context(env, default_actions()));
+ return phoenix::eval(*this, phoenix::context(env, default_actions()));
         }
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48 , typename A49>
         typename result_of::actor<proto_base_expr, A0 & , A1 & , A2 & , A3 & , A4 & , A5 & , A6 & , A7 & , A8 & , A9 & , A10 & , A11 & , A12 & , A13 & , A14 & , A15 & , A16 & , A17 & , A18 & , A19 & , A20 & , A21 & , A22 & , A23 & , A24 & , A25 & , A26 & , A27 & , A28 & , A29 & , A30 & , A31 & , A32 & , A33 & , A34 & , A35 & , A36 & , A37 & , A38 & , A39 & , A40 & , A41 & , A42 & , A43 & , A44 & , A45 & , A46 & , A47 & , A48 & , A49 &>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -30,8 +30,8 @@
         {
             typedef
                 
- typename mpl::eval_if<
- result_of::is_nullary<Expr>
+ typename mpl::eval_if_c<
+ result_of::is_nullary<Expr>::value
                   , nullary_actor_result<Expr>
                   , mpl::identity<detail::error_expecting_arguments>
>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -30,8 +30,8 @@
         {
             typedef
                 
- typename mpl::eval_if<
- result_of::is_nullary<Expr>
+ typename mpl::eval_if_c<
+ result_of::is_nullary<Expr>::value
                   , nullary_actor_result<Expr>
                   , mpl::identity<detail::error_expecting_arguments>
>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -30,8 +30,8 @@
         {
             typedef
                 
- typename mpl::eval_if<
- result_of::is_nullary<Expr>
+ typename mpl::eval_if_c<
+ result_of::is_nullary<Expr>::value
                   , nullary_actor_result<Expr>
                   , mpl::identity<detail::error_expecting_arguments>
>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -30,8 +30,8 @@
         {
             typedef
                 
- typename mpl::eval_if<
- result_of::is_nullary<Expr>
+ typename mpl::eval_if_c<
+ result_of::is_nullary<Expr>::value
                   , nullary_actor_result<Expr>
                   , mpl::identity<detail::error_expecting_arguments>
>::type

Modified: trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp
==============================================================================
--- trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp (original)
+++ trunk/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -30,8 +30,8 @@
         {
             typedef
                 
- typename mpl::eval_if<
- result_of::is_nullary<Expr>
+ typename mpl::eval_if_c<
+ result_of::is_nullary<Expr>::value
                   , nullary_actor_result<Expr>
                   , mpl::identity<detail::error_expecting_arguments>
>::type

Modified: trunk/boost/phoenix/core/expression.hpp
==============================================================================
--- trunk/boost/phoenix/core/expression.hpp (original)
+++ trunk/boost/phoenix/core/expression.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -6,6 +6,7 @@
 #include <boost/phoenix/core/limits.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/fusion/sequence/intrinsic/at.hpp>
+#include <boost/phoenix/core/as_actor.hpp>
 #include <boost/phoenix/core/detail/expression.hpp>
 #include <boost/phoenix/support/iterate.hpp>
 #include <boost/preprocessor/comparison/equal.hpp>
@@ -26,6 +27,7 @@
 #include <boost/phoenix/core/limits.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/fusion/sequence/intrinsic/at.hpp>
+#include <boost/phoenix/core/as_actor.hpp>
 #include <boost/phoenix/core/detail/expression.hpp>
 #include <boost/phoenix/core/domain.hpp>
 #include <boost/phoenix/support/iterate.hpp>
@@ -73,10 +75,11 @@
         : proto::domain<proto::use_basic_expr<proto::default_generator> >
     {};
 
-#define M0(Z, N, D) \
- BOOST_PP_COMMA_IF(N) typename proto::detail::uncvref<typename call_traits<BOOST_PP_CAT(A, N)>::value_type>::type
+#define M0(Z, N, D) \
+ BOOST_PP_COMMA_IF(N) \
+ typename proto::detail::uncvref<typename call_traits<BOOST_PP_CAT(A, N)>::value_type>::type
 
-#define M1(Z, N, D) \
+#define M1(Z, N, D) \
     BOOST_PP_COMMA_IF(N) typename call_traits<BOOST_PP_CAT(A, N)>::param_type BOOST_PP_CAT(a, N)
 
 #define BOOST_PHOENIX_ITERATION_PARAMS \

Modified: trunk/boost/phoenix/core/is_nullary.hpp
==============================================================================
--- trunk/boost/phoenix/core/is_nullary.hpp (original)
+++ trunk/boost/phoenix/core/is_nullary.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -89,8 +89,8 @@
                 is_nullary_trait;
 
             typedef
- typename mpl::eval_if<
- proto::is_transform<is_nullary_trait>
+ typename mpl::eval_if_c<
+ proto::is_transform<is_nullary_trait>::value
                   , defer_result<Expr, State, Data>
                   , is_nullary_trait
>::type
@@ -147,6 +147,28 @@
         struct is_nullary<custom_terminal<actor<T> > >
             : evaluator
         {};
+
+ template <typename T>
+ struct is_nullary<custom_terminal<boost::reference_wrapper<actor<T> > > >
+ {
+ BOOST_PROTO_TRANSFORM(is_nullary<custom_terminal<boost::reference_wrapper<actor<T> > > >)
+ template <typename Expr, typename State, typename Data>
+ struct impl
+ {
+ typedef typename evaluator::template impl<actor<T>, State, Data>::result_type result_type;
+ };
+ };
+
+ template <typename T>
+ struct is_nullary<custom_terminal<boost::reference_wrapper<actor<T> const> > >
+ {
+ BOOST_PROTO_TRANSFORM(is_nullary<custom_terminal<boost::reference_wrapper<actor<T> const> > >)
+ template <typename Expr, typename State, typename Data>
+ struct impl
+ {
+ typedef typename evaluator::template impl<actor<T>, State, Data>::result_type result_type;
+ };
+ };
     }
 
 }}

Modified: trunk/boost/phoenix/core/limits.hpp
==============================================================================
--- trunk/boost/phoenix/core/limits.hpp (original)
+++ trunk/boost/phoenix/core/limits.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -112,6 +112,12 @@
 # error "BOOST_PROTO_MAX_LOGICAL_ARITY < BOOST_PHOENIX_COMPOSITE_LIMIT"
 #endif
 
+#if !defined(BOOST_RESULT_OF_NUM_ARGS)
+# define BOOST_RESULT_OF_NUM_ARGS BOOST_PP_INC(BOOST_PHOENIX_COMPOSITE_LIMIT)
+#elif BOOST_RESULT_OF_NUM_ARGS < BOOST_PP_INC(BOOST_PHOENIX_COMPOSITE_LIMIT)
+# error "BOOST_RESULT_OF_NUM_ARGS < BOOST_PHOENIX_COMPOSITE_LIMIT + 1"
+#endif
+
 // this include will set the limit for the proto expression arity
 #include <boost/proto/proto_fwd.hpp>
 

Modified: trunk/boost/phoenix/core/reference.hpp
==============================================================================
--- trunk/boost/phoenix/core/reference.hpp (original)
+++ trunk/boost/phoenix/core/reference.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -95,6 +95,54 @@
             return r;
         }
     };
+
+ template<typename Expr>
+ struct custom_terminal<boost::reference_wrapper<actor<Expr> > >
+ {
+ template <typename Sig>
+ struct result;
+
+ template <typename This, typename Context>
+ struct result<This(boost::reference_wrapper<actor<Expr> > const &, Context)>
+ : boost::result_of<evaluator(actor<Expr> &, Context)>
+ {};
+
+ template <typename This, typename Context>
+ struct result<This(boost::reference_wrapper<actor<Expr> > &, Context)>
+ : boost::result_of<evaluator(actor<Expr> &, Context)>
+ {};
+
+ template <typename Context>
+ typename boost::result_of<evaluator(actor<Expr> &, Context const &)>::type
+ operator()(boost::reference_wrapper<actor<Expr> > & r, Context const & ctx) const
+ {
+ return eval(r, ctx);
+ }
+ };
+
+ template<typename Expr>
+ struct custom_terminal<boost::reference_wrapper<actor<Expr> const> >
+ {
+ template <typename Sig>
+ struct result;
+
+ template <typename This, typename Context>
+ struct result<This(boost::reference_wrapper<actor<Expr> const> const &, Context)>
+ : boost::result_of<evaluator(actor<Expr> const&, Context)>
+ {};
+
+ template <typename This, typename Context>
+ struct result<This(boost::reference_wrapper<actor<Expr> const> &, Context)>
+ : boost::result_of<evaluator(actor<Expr> const&, Context)>
+ {};
+
+ template <typename Context>
+ typename boost::result_of<evaluator(actor<Expr> const&, Context const &)>::type
+ operator()(boost::reference_wrapper<actor<Expr> const> const & r, Context & ctx) const
+ {
+ return eval(unwrap_ref(r), ctx);
+ }
+ };
 }}
 
 #endif

Modified: trunk/boost/phoenix/core/terminal.hpp
==============================================================================
--- trunk/boost/phoenix/core/terminal.hpp (original)
+++ trunk/boost/phoenix/core/terminal.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -55,12 +55,12 @@
         template <typename T, template <typename> class Actor = actor>
         struct terminal
             : proto::terminal<
- typename call_traits<T>::value_type
+ T//typename call_traits<T>::value_type
>
         {
             typedef typename
                 proto::terminal<
- typename call_traits<T>::value_type
+ T//typename call_traits<T>::value_type
>::type base_type;
             typedef Actor<base_type> type;
             

Modified: trunk/boost/phoenix/core/value.hpp
==============================================================================
--- trunk/boost/phoenix/core/value.hpp (original)
+++ trunk/boost/phoenix/core/value.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -76,10 +76,11 @@
 
         template<typename T>
         struct argument_type
- : mpl::eval_if<
- is_function<typename remove_pointer<T>::type>,
- mpl::identity<T>,
- const_ref<T> >
+ : mpl::eval_if_c<
+ is_function<typename remove_pointer<T>::type>::value
+ , mpl::identity<T>
+ , const_ref<T>
+ >
         {
             typedef T type;
         };

Modified: trunk/boost/phoenix/function.hpp
==============================================================================
--- trunk/boost/phoenix/function.hpp (original)
+++ trunk/boost/phoenix/function.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -7,12 +7,9 @@
 #ifndef BOOST_PHOENIX_FUNCTION_HPP
 #define BOOST_PHOENIX_FUNCTION_HPP
 
-#ifdef BOOST_PHOENIX_USE_V2_OVER_V3
-#include <boost/spirit/home/phoenix/function.hpp>
-#else
 #include <boost/phoenix/version.hpp>
 #include <boost/phoenix/function/function.hpp>
+#include <boost/phoenix/function/adapt_callable.hpp>
 #include <boost/phoenix/function/adapt_function.hpp>
-#endif
 
 #endif

Added: trunk/boost/phoenix/function/adapt_callable.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/phoenix/function/adapt_callable.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,58 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+ Copyright (c) 2011 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)
+==============================================================================*/
+#ifndef BOOST_PHOENIX_FUNCTION_ADAPT_CALLABLE_HPP
+#define BOOST_PHOENIX_FUNCTION_ADAPT_CALLABLE_HPP
+
+#include <boost/phoenix/core/limits.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+
+#define BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY(NAME, FUNC) \
+ boost::phoenix::detail::expression::function_eval<FUNC>::type const \
+ inline NAME() \
+ { \
+ return boost::phoenix::detail::expression:: \
+ function_eval<FUNC>::make(FUNC()); \
+ } \
+/**/
+
+
+#define BOOST_PHOENIX_ADAPT_CALLABLE(NAME, FUNC, N) \
+ template <BOOST_PHOENIX_typename_A(N)> \
+ typename \
+ boost::phoenix::detail::expression::function_eval< \
+ FUNC \
+ , BOOST_PHOENIX_A(N)>::type const \
+ inline NAME(BOOST_PHOENIX_A_const_ref_a(N)) \
+ { \
+ return boost::phoenix::detail::expression:: \
+ function_eval<FUNC, BOOST_PHOENIX_A(N)>:: \
+ make(FUNC(), BOOST_PHOENIX_a(N)); \
+ } \
+/**/
+
+
+#define BOOST_PHOENIX_ADAPT_CALLABLE_VARARG(NAME, FUNC) \
+ BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY(NAME, FUNC) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 1 \
+ , BOOST_PHOENIX_LIMIT \
+ , BOOST_PHOENIX_ADAPT_CALLABLE_VARARG_R \
+ , (NAME, FUNC) \
+ ) \
+/**/
+
+#define BOOST_PHOENIX_ADAPT_CALLABLE_VARARG_R(Z, N, D) \
+ BOOST_PHOENIX_ADAPT_CALLABLE( \
+ BOOST_PP_TUPLE_ELEM(2, 0, D) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, D) \
+ , N \
+ ) \
+/**/
+
+#endif

Modified: trunk/boost/phoenix/function/adapt_function.hpp
==============================================================================
--- trunk/boost/phoenix/function/adapt_function.hpp (original)
+++ trunk/boost/phoenix/function/adapt_function.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -9,51 +9,89 @@
 #define BOOST_PHOENIX_FUNCTION_ADAPT_FUNCTION_HPP
 
 #include <boost/phoenix/core/limits.hpp>
-#include <boost/phoenix/function/function_handling.hpp>
-#include <boost/preprocessor/control/if.hpp>
-#include <boost/preprocessor/facilities/empty.hpp>
-#include <boost/preprocessor/facilities/identity.hpp>
-#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
 #include <boost/preprocessor/repetition/repeat.hpp>
 
-#define BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(NAME, FUNC) \
- boost::phoenix::expression::function<FUNC>::type const \
+#define BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(RESULT, NAME, FUNC) \
+ namespace detail \
+ { \
+ struct BOOST_PP_CAT(NAME, _impl_nullary) \
+ { \
+ typedef RESULT result_type; \
+ \
+ result_type \
+ operator()() const \
+ { \
+ return FUNC(); \
+ } \
+ }; \
+ } \
+ \
+ boost::phoenix::detail::expression::function_eval< \
+ detail:: BOOST_PP_CAT(NAME, _impl_nullary) \
+ >::type const \
     inline NAME() \
     { \
- return boost::phoenix::expression::function<FUNC>::make(FUNC()); \
+ return boost::phoenix::detail::expression:: \
+ function_eval<detail:: BOOST_PP_CAT(NAME, _impl_nullary)> \
+ ::make(detail:: BOOST_PP_CAT(NAME, _impl_nullary)()); \
     } \
 /**/
 
-
-#define BOOST_PHOENIX_ADAPT_FUNCTION(NAME, FUNC, N) \
+#define BOOST_PHOENIX_ADAPT_FUNCTION(RESULT, NAME, FUNC, N) \
+ namespace detail \
+ { \
+ struct BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \
+ { \
+ template <typename Sig> \
+ struct result; \
+ \
+ template <typename This, BOOST_PHOENIX_typename_A(N)> \
+ struct result<This(BOOST_PHOENIX_A(N))> \
+ {typedef RESULT type;}; \
+ \
+ template <BOOST_PHOENIX_typename_A(N)> \
+ RESULT \
+ operator()(BOOST_PHOENIX_A_ref_a(N)) const \
+ { \
+ return FUNC(BOOST_PHOENIX_a(N)); \
+ } \
+ }; \
+ } \
+ \
     template <BOOST_PHOENIX_typename_A(N)> \
     typename \
- boost::phoenix::expression::function< \
- FUNC \
+ boost::phoenix::detail::expression::function_eval< \
+ detail:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \
           , BOOST_PHOENIX_A(N)>::type const \
     inline NAME(BOOST_PHOENIX_A_const_ref_a(N)) \
     { \
- return boost::phoenix::expression:: \
- function<FUNC, BOOST_PHOENIX_A(N)>:: \
- make(FUNC(), BOOST_PHOENIX_a(N)); \
+ return boost::phoenix::detail::expression:: \
+ function_eval< \
+ detail:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N) \
+ , BOOST_PHOENIX_A(N) \
+ >::make( \
+ detail:: BOOST_PP_CAT(BOOST_PP_CAT(NAME, _impl_), N)() \
+ , BOOST_PHOENIX_a(N) \
+ ); \
     } \
 /**/
 
-
-#define BOOST_PHOENIX_ADAPT_FUNCTION_VARARG(NAME, FUNC) \
+#define BOOST_PHOENIX_ADAPT_FUNCTION_VARARG(RESULT, NAME, FUNC) \
     BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(NAME, FUNC) \
     BOOST_PP_REPEAT_FROM_TO( \
         1 \
       , BOOST_PHOENIX_LIMIT \
       , BOOST_PHOENIX_ADAPT_FUNCTION_VARARG_R \
- , (NAME, FUNC) \
+ , (RESULT, NAME, FUNC) \
     ) \
 /**/
 
 #define BOOST_PHOENIX_ADAPT_FUNCTION_VARARG_R(Z, N, D) \
     BOOST_PHOENIX_ADAPT_FUNCTION( \
- BOOST_PP_TUPLE_ELEM(2, 0, D) \
- , BOOST_PP_TUPLE_ELEM(2, 1, D) \
+ BOOST_PP_TUPLE_ELEM(3, 0, D) \
+ , BOOST_PP_TUPLE_ELEM(3, 1, D) \
+ , BOOST_PP_TUPLE_ELEM(3, 2, D) \
       , N \
     ) \
 /**/

Modified: trunk/boost/phoenix/function/detail/function_operator.hpp
==============================================================================
--- trunk/boost/phoenix/function/detail/function_operator.hpp (original)
+++ trunk/boost/phoenix/function/detail/function_operator.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -43,14 +43,14 @@
 #else
         template <typename This, BOOST_PHOENIX_typename_A>
         struct result<This(BOOST_PHOENIX_A_const_ref)>
- : expression::function<F, BOOST_PHOENIX_A>
+ : detail::expression::function_eval<F, BOOST_PHOENIX_A>
         {};
 
         template <BOOST_PHOENIX_typename_A>
- typename expression::function<F, BOOST_PHOENIX_A>::type const
+ typename detail::expression::function_eval<F, BOOST_PHOENIX_A>::type const
         operator()(BOOST_PHOENIX_A_const_ref_a) const
         {
- return expression::function<F, BOOST_PHOENIX_A>::make(f, BOOST_PHOENIX_a);
+ return detail::expression::function_eval<F, BOOST_PHOENIX_A>::make(f, BOOST_PHOENIX_a);
         }
 
 #endif

Modified: trunk/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp
==============================================================================
--- trunk/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp (original)
+++ trunk/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,13 +14,13 @@
     
         template <typename This, typename A0>
         struct result<This(A0 const&)>
- : expression::function<F, A0>
+ : detail::expression::function_eval<F, A0>
         {};
         template <typename A0>
- typename expression::function<F, A0>::type const
+ typename detail::expression::function_eval<F, A0>::type const
         operator()(A0 const& a0) const
         {
- return expression::function<F, A0>::make(f, a0);
+ return detail::expression::function_eval<F, A0>::make(f, a0);
         }
     
     
@@ -31,13 +31,13 @@
     
         template <typename This, typename A0 , typename A1>
         struct result<This(A0 const& , A1 const&)>
- : expression::function<F, A0 , A1>
+ : detail::expression::function_eval<F, A0 , A1>
         {};
         template <typename A0 , typename A1>
- typename expression::function<F, A0 , A1>::type const
+ typename detail::expression::function_eval<F, A0 , A1>::type const
         operator()(A0 const& a0 , A1 const& a1) const
         {
- return expression::function<F, A0 , A1>::make(f, a0 , a1);
+ return detail::expression::function_eval<F, A0 , A1>::make(f, a0 , a1);
         }
     
     
@@ -48,13 +48,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2>
         struct result<This(A0 const& , A1 const& , A2 const&)>
- : expression::function<F, A0 , A1 , A2>
+ : detail::expression::function_eval<F, A0 , A1 , A2>
         {};
         template <typename A0 , typename A1 , typename A2>
- typename expression::function<F, A0 , A1 , A2>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
         {
- return expression::function<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
+ return detail::expression::function_eval<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
         }
     
     
@@ -65,13 +65,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
- : expression::function<F, A0 , A1 , A2 , A3>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3>
- typename expression::function<F, A0 , A1 , A2 , A3>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
         {
- return expression::function<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
         }
     
     
@@ -82,13 +82,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
         }
     
     
@@ -99,13 +99,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
         }
     
     
@@ -116,13 +116,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
         }
     
     
@@ -133,13 +133,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
         }
     
     
@@ -150,13 +150,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
         }
     
     
@@ -167,11 +167,11 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
         }

Modified: trunk/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp
==============================================================================
--- trunk/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp (original)
+++ trunk/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,13 +14,13 @@
     
         template <typename This, typename A0>
         struct result<This(A0 const&)>
- : expression::function<F, A0>
+ : detail::expression::function_eval<F, A0>
         {};
         template <typename A0>
- typename expression::function<F, A0>::type const
+ typename detail::expression::function_eval<F, A0>::type const
         operator()(A0 const& a0) const
         {
- return expression::function<F, A0>::make(f, a0);
+ return detail::expression::function_eval<F, A0>::make(f, a0);
         }
     
     
@@ -31,13 +31,13 @@
     
         template <typename This, typename A0 , typename A1>
         struct result<This(A0 const& , A1 const&)>
- : expression::function<F, A0 , A1>
+ : detail::expression::function_eval<F, A0 , A1>
         {};
         template <typename A0 , typename A1>
- typename expression::function<F, A0 , A1>::type const
+ typename detail::expression::function_eval<F, A0 , A1>::type const
         operator()(A0 const& a0 , A1 const& a1) const
         {
- return expression::function<F, A0 , A1>::make(f, a0 , a1);
+ return detail::expression::function_eval<F, A0 , A1>::make(f, a0 , a1);
         }
     
     
@@ -48,13 +48,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2>
         struct result<This(A0 const& , A1 const& , A2 const&)>
- : expression::function<F, A0 , A1 , A2>
+ : detail::expression::function_eval<F, A0 , A1 , A2>
         {};
         template <typename A0 , typename A1 , typename A2>
- typename expression::function<F, A0 , A1 , A2>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
         {
- return expression::function<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
+ return detail::expression::function_eval<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
         }
     
     
@@ -65,13 +65,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
- : expression::function<F, A0 , A1 , A2 , A3>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3>
- typename expression::function<F, A0 , A1 , A2 , A3>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
         {
- return expression::function<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
         }
     
     
@@ -82,13 +82,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
         }
     
     
@@ -99,13 +99,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
         }
     
     
@@ -116,13 +116,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
         }
     
     
@@ -133,13 +133,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
         }
     
     
@@ -150,13 +150,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
         }
     
     
@@ -167,13 +167,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
         }
     
     
@@ -184,13 +184,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
         }
     
     
@@ -201,13 +201,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
         }
     
     
@@ -218,13 +218,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
         }
     
     
@@ -235,13 +235,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
         }
     
     
@@ -252,13 +252,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
         }
     
     
@@ -269,13 +269,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
         }
     
     
@@ -286,13 +286,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
         }
     
     
@@ -303,13 +303,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
         }
     
     
@@ -320,13 +320,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
         }
     
     
@@ -337,11 +337,11 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
         }

Modified: trunk/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp
==============================================================================
--- trunk/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp (original)
+++ trunk/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,13 +14,13 @@
     
         template <typename This, typename A0>
         struct result<This(A0 const&)>
- : expression::function<F, A0>
+ : detail::expression::function_eval<F, A0>
         {};
         template <typename A0>
- typename expression::function<F, A0>::type const
+ typename detail::expression::function_eval<F, A0>::type const
         operator()(A0 const& a0) const
         {
- return expression::function<F, A0>::make(f, a0);
+ return detail::expression::function_eval<F, A0>::make(f, a0);
         }
     
     
@@ -31,13 +31,13 @@
     
         template <typename This, typename A0 , typename A1>
         struct result<This(A0 const& , A1 const&)>
- : expression::function<F, A0 , A1>
+ : detail::expression::function_eval<F, A0 , A1>
         {};
         template <typename A0 , typename A1>
- typename expression::function<F, A0 , A1>::type const
+ typename detail::expression::function_eval<F, A0 , A1>::type const
         operator()(A0 const& a0 , A1 const& a1) const
         {
- return expression::function<F, A0 , A1>::make(f, a0 , a1);
+ return detail::expression::function_eval<F, A0 , A1>::make(f, a0 , a1);
         }
     
     
@@ -48,13 +48,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2>
         struct result<This(A0 const& , A1 const& , A2 const&)>
- : expression::function<F, A0 , A1 , A2>
+ : detail::expression::function_eval<F, A0 , A1 , A2>
         {};
         template <typename A0 , typename A1 , typename A2>
- typename expression::function<F, A0 , A1 , A2>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
         {
- return expression::function<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
+ return detail::expression::function_eval<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
         }
     
     
@@ -65,13 +65,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
- : expression::function<F, A0 , A1 , A2 , A3>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3>
- typename expression::function<F, A0 , A1 , A2 , A3>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
         {
- return expression::function<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
         }
     
     
@@ -82,13 +82,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
         }
     
     
@@ -99,13 +99,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
         }
     
     
@@ -116,13 +116,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
         }
     
     
@@ -133,13 +133,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
         }
     
     
@@ -150,13 +150,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
         }
     
     
@@ -167,13 +167,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
         }
     
     
@@ -184,13 +184,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
         }
     
     
@@ -201,13 +201,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
         }
     
     
@@ -218,13 +218,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
         }
     
     
@@ -235,13 +235,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
         }
     
     
@@ -252,13 +252,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
         }
     
     
@@ -269,13 +269,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
         }
     
     
@@ -286,13 +286,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
         }
     
     
@@ -303,13 +303,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
         }
     
     
@@ -320,13 +320,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
         }
     
     
@@ -337,13 +337,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
         }
     
     
@@ -354,13 +354,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
         }
     
     
@@ -371,13 +371,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
         }
     
     
@@ -388,13 +388,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
         }
     
     
@@ -405,13 +405,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
         }
     
     
@@ -422,13 +422,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
         }
     
     
@@ -439,13 +439,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
         }
     
     
@@ -456,13 +456,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
         }
     
     
@@ -473,13 +473,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
         }
     
     
@@ -490,13 +490,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
         }
     
     
@@ -507,11 +507,11 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
         }

Modified: trunk/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp
==============================================================================
--- trunk/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp (original)
+++ trunk/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,13 +14,13 @@
     
         template <typename This, typename A0>
         struct result<This(A0 const&)>
- : expression::function<F, A0>
+ : detail::expression::function_eval<F, A0>
         {};
         template <typename A0>
- typename expression::function<F, A0>::type const
+ typename detail::expression::function_eval<F, A0>::type const
         operator()(A0 const& a0) const
         {
- return expression::function<F, A0>::make(f, a0);
+ return detail::expression::function_eval<F, A0>::make(f, a0);
         }
     
     
@@ -31,13 +31,13 @@
     
         template <typename This, typename A0 , typename A1>
         struct result<This(A0 const& , A1 const&)>
- : expression::function<F, A0 , A1>
+ : detail::expression::function_eval<F, A0 , A1>
         {};
         template <typename A0 , typename A1>
- typename expression::function<F, A0 , A1>::type const
+ typename detail::expression::function_eval<F, A0 , A1>::type const
         operator()(A0 const& a0 , A1 const& a1) const
         {
- return expression::function<F, A0 , A1>::make(f, a0 , a1);
+ return detail::expression::function_eval<F, A0 , A1>::make(f, a0 , a1);
         }
     
     
@@ -48,13 +48,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2>
         struct result<This(A0 const& , A1 const& , A2 const&)>
- : expression::function<F, A0 , A1 , A2>
+ : detail::expression::function_eval<F, A0 , A1 , A2>
         {};
         template <typename A0 , typename A1 , typename A2>
- typename expression::function<F, A0 , A1 , A2>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
         {
- return expression::function<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
+ return detail::expression::function_eval<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
         }
     
     
@@ -65,13 +65,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
- : expression::function<F, A0 , A1 , A2 , A3>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3>
- typename expression::function<F, A0 , A1 , A2 , A3>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
         {
- return expression::function<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
         }
     
     
@@ -82,13 +82,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
         }
     
     
@@ -99,13 +99,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
         }
     
     
@@ -116,13 +116,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
         }
     
     
@@ -133,13 +133,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
         }
     
     
@@ -150,13 +150,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
         }
     
     
@@ -167,13 +167,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
         }
     
     
@@ -184,13 +184,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
         }
     
     
@@ -201,13 +201,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
         }
     
     
@@ -218,13 +218,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
         }
     
     
@@ -235,13 +235,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
         }
     
     
@@ -252,13 +252,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
         }
     
     
@@ -269,13 +269,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
         }
     
     
@@ -286,13 +286,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
         }
     
     
@@ -303,13 +303,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
         }
     
     
@@ -320,13 +320,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
         }
     
     
@@ -337,13 +337,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
         }
     
     
@@ -354,13 +354,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
         }
     
     
@@ -371,13 +371,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
         }
     
     
@@ -388,13 +388,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
         }
     
     
@@ -405,13 +405,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
         }
     
     
@@ -422,13 +422,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
         }
     
     
@@ -439,13 +439,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
         }
     
     
@@ -456,13 +456,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
         }
     
     
@@ -473,13 +473,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
         }
     
     
@@ -490,13 +490,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
         }
     
     
@@ -507,13 +507,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
         }
     
     
@@ -524,13 +524,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
         }
     
     
@@ -541,13 +541,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
         }
     
     
@@ -558,13 +558,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
         }
     
     
@@ -575,13 +575,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
         }
     
     
@@ -592,13 +592,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
         }
     
     
@@ -609,13 +609,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
         }
     
     
@@ -626,13 +626,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
         }
     
     
@@ -643,13 +643,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
         }
     
     
@@ -660,13 +660,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
         }
     
     
@@ -677,11 +677,11 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
         }

Modified: trunk/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp
==============================================================================
--- trunk/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp (original)
+++ trunk/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,13 +14,13 @@
     
         template <typename This, typename A0>
         struct result<This(A0 const&)>
- : expression::function<F, A0>
+ : detail::expression::function_eval<F, A0>
         {};
         template <typename A0>
- typename expression::function<F, A0>::type const
+ typename detail::expression::function_eval<F, A0>::type const
         operator()(A0 const& a0) const
         {
- return expression::function<F, A0>::make(f, a0);
+ return detail::expression::function_eval<F, A0>::make(f, a0);
         }
     
     
@@ -31,13 +31,13 @@
     
         template <typename This, typename A0 , typename A1>
         struct result<This(A0 const& , A1 const&)>
- : expression::function<F, A0 , A1>
+ : detail::expression::function_eval<F, A0 , A1>
         {};
         template <typename A0 , typename A1>
- typename expression::function<F, A0 , A1>::type const
+ typename detail::expression::function_eval<F, A0 , A1>::type const
         operator()(A0 const& a0 , A1 const& a1) const
         {
- return expression::function<F, A0 , A1>::make(f, a0 , a1);
+ return detail::expression::function_eval<F, A0 , A1>::make(f, a0 , a1);
         }
     
     
@@ -48,13 +48,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2>
         struct result<This(A0 const& , A1 const& , A2 const&)>
- : expression::function<F, A0 , A1 , A2>
+ : detail::expression::function_eval<F, A0 , A1 , A2>
         {};
         template <typename A0 , typename A1 , typename A2>
- typename expression::function<F, A0 , A1 , A2>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
         {
- return expression::function<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
+ return detail::expression::function_eval<F, A0 , A1 , A2>::make(f, a0 , a1 , a2);
         }
     
     
@@ -65,13 +65,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const&)>
- : expression::function<F, A0 , A1 , A2 , A3>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3>
- typename expression::function<F, A0 , A1 , A2 , A3>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
         {
- return expression::function<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3>::make(f, a0 , a1 , a2 , a3);
         }
     
     
@@ -82,13 +82,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4);
         }
     
     
@@ -99,13 +99,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5>::make(f, a0 , a1 , a2 , a3 , a4 , a5);
         }
     
     
@@ -116,13 +116,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6);
         }
     
     
@@ -133,13 +133,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
         }
     
     
@@ -150,13 +150,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
         }
     
     
@@ -167,13 +167,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
         }
     
     
@@ -184,13 +184,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
         }
     
     
@@ -201,13 +201,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
         }
     
     
@@ -218,13 +218,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
         }
     
     
@@ -235,13 +235,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
         }
     
     
@@ -252,13 +252,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
         }
     
     
@@ -269,13 +269,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
         }
     
     
@@ -286,13 +286,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
         }
     
     
@@ -303,13 +303,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
         }
     
     
@@ -320,13 +320,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
         }
     
     
@@ -337,13 +337,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
         }
     
     
@@ -354,13 +354,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
         }
     
     
@@ -371,13 +371,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
         }
     
     
@@ -388,13 +388,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
         }
     
     
@@ -405,13 +405,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
         }
     
     
@@ -422,13 +422,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
         }
     
     
@@ -439,13 +439,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
         }
     
     
@@ -456,13 +456,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
         }
     
     
@@ -473,13 +473,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
         }
     
     
@@ -490,13 +490,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
         }
     
     
@@ -507,13 +507,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
         }
     
     
@@ -524,13 +524,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
         }
     
     
@@ -541,13 +541,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
         }
     
     
@@ -558,13 +558,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
         }
     
     
@@ -575,13 +575,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
         }
     
     
@@ -592,13 +592,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
         }
     
     
@@ -609,13 +609,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
         }
     
     
@@ -626,13 +626,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
         }
     
     
@@ -643,13 +643,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
         }
     
     
@@ -660,13 +660,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
         }
     
     
@@ -677,13 +677,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
         }
     
     
@@ -694,13 +694,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
         }
     
     
@@ -711,13 +711,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
         }
     
     
@@ -728,13 +728,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
         }
     
     
@@ -745,13 +745,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43);
         }
     
     
@@ -762,13 +762,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const& , A44 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44);
         }
     
     
@@ -779,13 +779,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const& , A44 const& , A45 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45);
         }
     
     
@@ -796,13 +796,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const& , A44 const& , A45 const& , A46 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46);
         }
     
     
@@ -813,13 +813,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const& , A44 const& , A45 const& , A46 const& , A47 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46 , A47 const& a47) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47);
         }
     
     
@@ -830,13 +830,13 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const& , A44 const& , A45 const& , A46 const& , A47 const& , A48 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46 , A47 const& a47 , A48 const& a48) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48);
         }
     
     
@@ -847,11 +847,11 @@
     
         template <typename This, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48 , typename A49>
         struct result<This(A0 const& , A1 const& , A2 const& , A3 const& , A4 const& , A5 const& , A6 const& , A7 const& , A8 const& , A9 const& , A10 const& , A11 const& , A12 const& , A13 const& , A14 const& , A15 const& , A16 const& , A17 const& , A18 const& , A19 const& , A20 const& , A21 const& , A22 const& , A23 const& , A24 const& , A25 const& , A26 const& , A27 const& , A28 const& , A29 const& , A30 const& , A31 const& , A32 const& , A33 const& , A34 const& , A35 const& , A36 const& , A37 const& , A38 const& , A39 const& , A40 const& , A41 const& , A42 const& , A43 const& , A44 const& , A45 const& , A46 const& , A47 const& , A48 const& , A49 const&)>
- : expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 , A49>
+ : detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 , A49>
         {};
         template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48 , typename A49>
- typename expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 , A49>::type const
+ typename detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 , A49>::type const
         operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46 , A47 const& a47 , A48 const& a48 , A49 const& a49) const
         {
- return expression::function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 , A49>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48 , a49);
+ return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 , A49>::make(f, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48 , a49);
         }

Modified: trunk/boost/phoenix/function/function.hpp
==============================================================================
--- trunk/boost/phoenix/function/function.hpp (original)
+++ trunk/boost/phoenix/function/function.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -8,8 +8,8 @@
 #ifndef BOOST_PHOENIX_FUNCTION_FUNCTION_HPP
 #define BOOST_PHOENIX_FUNCTION_FUNCTION_HPP
 
-#include <boost/phoenix/function/function_handling.hpp>
-#include <boost/phoenix/function/adapt_function.hpp>
+//#include <boost/phoenix/function/function_handling.hpp>
+#include <boost/phoenix/core/detail/function_eval.hpp>
 #include <boost/preprocessor/facilities/expand.hpp>
 #include <boost/preprocessor/logical/or.hpp>
 #include <boost/utility/result_of.hpp>
@@ -33,10 +33,10 @@
         template <typename Sig>
         struct result;
 
- typename expression::function<F>::type const
+ typename detail::expression::function_eval<F>::type const
         operator()() const
         {
- return expression::function<F>::make(f);
+ return detail::expression::function_eval<F>::make(f);
         }
 
         // Bring in the rest
@@ -44,12 +44,11 @@
 
         F f;
     };
-
 }
 
     template<typename F>
     struct result_of<phoenix::function<F>()>
- : phoenix::expression::function<F>
+ : phoenix::detail::expression::function_eval<F>
     {};
 
 }

Deleted: trunk/boost/phoenix/function/function_handling.hpp
==============================================================================
--- trunk/boost/phoenix/function/function_handling.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2010 Eric Niebler
-
- 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)
-==============================================================================*/
-#ifndef BOOST_PHOENIX_FUNCTION_FUNCTION_HANDLING_HPP
-#define BOOST_PHOENIX_FUNCTION_FUNCTION_HANDLING_HPP
-
-#include <boost/phoenix/core/limits.hpp>
-#include <boost/phoenix/core/meta_grammar.hpp>
-#include <boost/phoenix/core/expression.hpp>
-#include <boost/phoenix/core/call.hpp>
-#include <boost/phoenix/support/iterate.hpp>
-#include <boost/proto/tags.hpp>
-
-namespace boost { namespace phoenix
-{
- /////////////////////////////////////////////////////////////////////////////
- // Functions
- /////////////////////////////////////////////////////////////////////////////
-
- namespace tag
- {
- typedef proto::tag::function function;
- }
-
- namespace expression
- {
-
- template <
- typename F
- , BOOST_PHOENIX_typename_A_void(BOOST_PHOENIX_LIMIT)
- , typename Dummy = void
- >
- struct function;
-
- #define BOOST_PHOENIX_DEFINE_FUNCTION_EXPRESSION(_, N, __) \
- template <typename F, BOOST_PHOENIX_typename_A(N)> \
- struct function<F, BOOST_PHOENIX_A(N)> \
- : expr<tag::function, F, BOOST_PHOENIX_A(N)> \
- {}; \
-
- BOOST_PP_REPEAT_FROM_TO(
- 1
- , BOOST_PHOENIX_LIMIT
- , BOOST_PHOENIX_DEFINE_FUNCTION_EXPRESSION
- , _
- )
-
- #undef BOOST_PHOENIX_DEFINE_FUNCTION_EXPRESSION
- }
-
- namespace rule
- {
- struct function
- : expression::function<proto::vararg<meta_grammar> >
- {};
- }
-
- template <typename Dummy>
- struct meta_grammar::case_<proto::tag::function, Dummy>
- : enable_rule<rule::function, Dummy>
- {};
-
-}}
-
-#endif

Modified: trunk/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp
==============================================================================
--- trunk/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp (original)
+++ trunk/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -51,7 +51,7 @@
             template <typename Object, typename MemPtr>
             struct mem_fun_ptr_gen<Object, MemPtr>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ boost::phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr>
@@ -79,7 +79,7 @@
             operator()() const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
             }
 
 #define BOOST_PHOENIX_ITERATE_OPERATOR 2
@@ -111,7 +111,7 @@
             template <typename Object, typename MemPtr, BOOST_PHOENIX_typename_A>
             struct mem_fun_ptr_gen<Object, MemPtr, BOOST_PHOENIX_A>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -129,7 +129,7 @@
             operator()(BOOST_PHOENIX_A_const_ref_a) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, BOOST_PHOENIX_a);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, BOOST_PHOENIX_a);
             }
 
             template <BOOST_PHOENIX_typename_A>
@@ -141,7 +141,7 @@
             operator()(BOOST_PHOENIX_A_ref_a) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, BOOST_PHOENIX_a);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, BOOST_PHOENIX_a);
             }
 
 #endif

Modified: trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp
==============================================================================
--- trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp (original)
+++ trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -21,7 +21,7 @@
             template <typename Object, typename MemPtr>
             struct mem_fun_ptr_gen<Object, MemPtr>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ boost::phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr>
@@ -36,7 +36,7 @@
             template <typename Object, typename MemPtr, typename A0>
             struct mem_fun_ptr_gen<Object, MemPtr, A0>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -52,7 +52,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -68,7 +68,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -84,7 +84,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -100,7 +100,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -116,7 +116,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -132,7 +132,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -148,7 +148,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -164,7 +164,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -182,7 +182,7 @@
             operator()() const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
             }
     
     
@@ -200,7 +200,7 @@
             operator()(A0 const& a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
             template <typename A0>
             typename result_of::mem_fun_ptr_gen<
@@ -211,7 +211,7 @@
             operator()(A0 & a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
     
     
@@ -229,7 +229,7 @@
             operator()(A0 const& a0 , A1 const& a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
             template <typename A0 , typename A1>
             typename result_of::mem_fun_ptr_gen<
@@ -240,7 +240,7 @@
             operator()(A0 & a0 , A1 & a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
     
     
@@ -258,7 +258,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
             template <typename A0 , typename A1 , typename A2>
             typename result_of::mem_fun_ptr_gen<
@@ -269,7 +269,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
     
     
@@ -287,7 +287,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3>
             typename result_of::mem_fun_ptr_gen<
@@ -298,7 +298,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
     
     
@@ -316,7 +316,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             typename result_of::mem_fun_ptr_gen<
@@ -327,7 +327,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
     
     
@@ -345,7 +345,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             typename result_of::mem_fun_ptr_gen<
@@ -356,7 +356,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
     
     
@@ -374,7 +374,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             typename result_of::mem_fun_ptr_gen<
@@ -385,7 +385,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
     
     
@@ -403,7 +403,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             typename result_of::mem_fun_ptr_gen<
@@ -414,7 +414,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
     
     
@@ -432,7 +432,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             typename result_of::mem_fun_ptr_gen<
@@ -443,7 +443,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
             Object const& obj;
             MemPtr ptr;

Modified: trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp
==============================================================================
--- trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp (original)
+++ trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -21,7 +21,7 @@
             template <typename Object, typename MemPtr>
             struct mem_fun_ptr_gen<Object, MemPtr>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ boost::phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr>
@@ -36,7 +36,7 @@
             template <typename Object, typename MemPtr, typename A0>
             struct mem_fun_ptr_gen<Object, MemPtr, A0>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -52,7 +52,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -68,7 +68,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -84,7 +84,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -100,7 +100,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -116,7 +116,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -132,7 +132,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -148,7 +148,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -164,7 +164,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -180,7 +180,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -196,7 +196,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -212,7 +212,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -228,7 +228,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -244,7 +244,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -260,7 +260,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -276,7 +276,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -292,7 +292,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -308,7 +308,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -324,7 +324,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -342,7 +342,7 @@
             operator()() const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
             }
     
     
@@ -360,7 +360,7 @@
             operator()(A0 const& a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
             template <typename A0>
             typename result_of::mem_fun_ptr_gen<
@@ -371,7 +371,7 @@
             operator()(A0 & a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
     
     
@@ -389,7 +389,7 @@
             operator()(A0 const& a0 , A1 const& a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
             template <typename A0 , typename A1>
             typename result_of::mem_fun_ptr_gen<
@@ -400,7 +400,7 @@
             operator()(A0 & a0 , A1 & a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
     
     
@@ -418,7 +418,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
             template <typename A0 , typename A1 , typename A2>
             typename result_of::mem_fun_ptr_gen<
@@ -429,7 +429,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
     
     
@@ -447,7 +447,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3>
             typename result_of::mem_fun_ptr_gen<
@@ -458,7 +458,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
     
     
@@ -476,7 +476,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             typename result_of::mem_fun_ptr_gen<
@@ -487,7 +487,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
     
     
@@ -505,7 +505,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             typename result_of::mem_fun_ptr_gen<
@@ -516,7 +516,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
     
     
@@ -534,7 +534,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             typename result_of::mem_fun_ptr_gen<
@@ -545,7 +545,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
     
     
@@ -563,7 +563,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             typename result_of::mem_fun_ptr_gen<
@@ -574,7 +574,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
     
     
@@ -592,7 +592,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             typename result_of::mem_fun_ptr_gen<
@@ -603,7 +603,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
     
     
@@ -621,7 +621,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             typename result_of::mem_fun_ptr_gen<
@@ -632,7 +632,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
     
     
@@ -650,7 +650,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             typename result_of::mem_fun_ptr_gen<
@@ -661,7 +661,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
     
     
@@ -679,7 +679,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             typename result_of::mem_fun_ptr_gen<
@@ -690,7 +690,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
     
     
@@ -708,7 +708,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             typename result_of::mem_fun_ptr_gen<
@@ -719,7 +719,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
     
     
@@ -737,7 +737,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             typename result_of::mem_fun_ptr_gen<
@@ -748,7 +748,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
     
     
@@ -766,7 +766,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             typename result_of::mem_fun_ptr_gen<
@@ -777,7 +777,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
     
     
@@ -795,7 +795,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             typename result_of::mem_fun_ptr_gen<
@@ -806,7 +806,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
     
     
@@ -824,7 +824,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             typename result_of::mem_fun_ptr_gen<
@@ -835,7 +835,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
     
     
@@ -853,7 +853,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             typename result_of::mem_fun_ptr_gen<
@@ -864,7 +864,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
     
     
@@ -882,7 +882,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             typename result_of::mem_fun_ptr_gen<
@@ -893,7 +893,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
             Object const& obj;
             MemPtr ptr;

Modified: trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp
==============================================================================
--- trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp (original)
+++ trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -21,7 +21,7 @@
             template <typename Object, typename MemPtr>
             struct mem_fun_ptr_gen<Object, MemPtr>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ boost::phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr>
@@ -36,7 +36,7 @@
             template <typename Object, typename MemPtr, typename A0>
             struct mem_fun_ptr_gen<Object, MemPtr, A0>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -52,7 +52,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -68,7 +68,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -84,7 +84,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -100,7 +100,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -116,7 +116,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -132,7 +132,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -148,7 +148,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -164,7 +164,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -180,7 +180,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -196,7 +196,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -212,7 +212,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -228,7 +228,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -244,7 +244,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -260,7 +260,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -276,7 +276,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -292,7 +292,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -308,7 +308,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -324,7 +324,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -340,7 +340,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -356,7 +356,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -372,7 +372,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -388,7 +388,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -404,7 +404,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -420,7 +420,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -436,7 +436,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -452,7 +452,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -468,7 +468,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -484,7 +484,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -502,7 +502,7 @@
             operator()() const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
             }
     
     
@@ -520,7 +520,7 @@
             operator()(A0 const& a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
             template <typename A0>
             typename result_of::mem_fun_ptr_gen<
@@ -531,7 +531,7 @@
             operator()(A0 & a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
     
     
@@ -549,7 +549,7 @@
             operator()(A0 const& a0 , A1 const& a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
             template <typename A0 , typename A1>
             typename result_of::mem_fun_ptr_gen<
@@ -560,7 +560,7 @@
             operator()(A0 & a0 , A1 & a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
     
     
@@ -578,7 +578,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
             template <typename A0 , typename A1 , typename A2>
             typename result_of::mem_fun_ptr_gen<
@@ -589,7 +589,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
     
     
@@ -607,7 +607,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3>
             typename result_of::mem_fun_ptr_gen<
@@ -618,7 +618,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
     
     
@@ -636,7 +636,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             typename result_of::mem_fun_ptr_gen<
@@ -647,7 +647,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
     
     
@@ -665,7 +665,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             typename result_of::mem_fun_ptr_gen<
@@ -676,7 +676,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
     
     
@@ -694,7 +694,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             typename result_of::mem_fun_ptr_gen<
@@ -705,7 +705,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
     
     
@@ -723,7 +723,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             typename result_of::mem_fun_ptr_gen<
@@ -734,7 +734,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
     
     
@@ -752,7 +752,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             typename result_of::mem_fun_ptr_gen<
@@ -763,7 +763,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
     
     
@@ -781,7 +781,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             typename result_of::mem_fun_ptr_gen<
@@ -792,7 +792,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
     
     
@@ -810,7 +810,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             typename result_of::mem_fun_ptr_gen<
@@ -821,7 +821,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
     
     
@@ -839,7 +839,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             typename result_of::mem_fun_ptr_gen<
@@ -850,7 +850,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
     
     
@@ -868,7 +868,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             typename result_of::mem_fun_ptr_gen<
@@ -879,7 +879,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
     
     
@@ -897,7 +897,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             typename result_of::mem_fun_ptr_gen<
@@ -908,7 +908,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
     
     
@@ -926,7 +926,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             typename result_of::mem_fun_ptr_gen<
@@ -937,7 +937,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
     
     
@@ -955,7 +955,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             typename result_of::mem_fun_ptr_gen<
@@ -966,7 +966,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
     
     
@@ -984,7 +984,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             typename result_of::mem_fun_ptr_gen<
@@ -995,7 +995,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
     
     
@@ -1013,7 +1013,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             typename result_of::mem_fun_ptr_gen<
@@ -1024,7 +1024,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
     
     
@@ -1042,7 +1042,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             typename result_of::mem_fun_ptr_gen<
@@ -1053,7 +1053,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
     
     
@@ -1071,7 +1071,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
             typename result_of::mem_fun_ptr_gen<
@@ -1082,7 +1082,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
             }
     
     
@@ -1100,7 +1100,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
             typename result_of::mem_fun_ptr_gen<
@@ -1111,7 +1111,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
             }
     
     
@@ -1129,7 +1129,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
             typename result_of::mem_fun_ptr_gen<
@@ -1140,7 +1140,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
             }
     
     
@@ -1158,7 +1158,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
             typename result_of::mem_fun_ptr_gen<
@@ -1169,7 +1169,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
             }
     
     
@@ -1187,7 +1187,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
             typename result_of::mem_fun_ptr_gen<
@@ -1198,7 +1198,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
             }
     
     
@@ -1216,7 +1216,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
             typename result_of::mem_fun_ptr_gen<
@@ -1227,7 +1227,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
             }
     
     
@@ -1245,7 +1245,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
             typename result_of::mem_fun_ptr_gen<
@@ -1256,7 +1256,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
             }
     
     
@@ -1274,7 +1274,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
             typename result_of::mem_fun_ptr_gen<
@@ -1285,7 +1285,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
             }
     
     
@@ -1303,7 +1303,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
             typename result_of::mem_fun_ptr_gen<
@@ -1314,7 +1314,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
             }
     
     
@@ -1332,7 +1332,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
             typename result_of::mem_fun_ptr_gen<
@@ -1343,7 +1343,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
             }
             Object const& obj;
             MemPtr ptr;

Modified: trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp
==============================================================================
--- trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp (original)
+++ trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -21,7 +21,7 @@
             template <typename Object, typename MemPtr>
             struct mem_fun_ptr_gen<Object, MemPtr>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ boost::phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr>
@@ -36,7 +36,7 @@
             template <typename Object, typename MemPtr, typename A0>
             struct mem_fun_ptr_gen<Object, MemPtr, A0>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -52,7 +52,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -68,7 +68,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -84,7 +84,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -100,7 +100,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -116,7 +116,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -132,7 +132,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -148,7 +148,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -164,7 +164,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -180,7 +180,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -196,7 +196,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -212,7 +212,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -228,7 +228,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -244,7 +244,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -260,7 +260,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -276,7 +276,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -292,7 +292,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -308,7 +308,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -324,7 +324,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -340,7 +340,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -356,7 +356,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -372,7 +372,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -388,7 +388,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -404,7 +404,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -420,7 +420,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -436,7 +436,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -452,7 +452,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -468,7 +468,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -484,7 +484,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -500,7 +500,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -516,7 +516,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -532,7 +532,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -548,7 +548,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -564,7 +564,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -580,7 +580,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -596,7 +596,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -612,7 +612,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -628,7 +628,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -644,7 +644,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -662,7 +662,7 @@
             operator()() const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
             }
     
     
@@ -680,7 +680,7 @@
             operator()(A0 const& a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
             template <typename A0>
             typename result_of::mem_fun_ptr_gen<
@@ -691,7 +691,7 @@
             operator()(A0 & a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
     
     
@@ -709,7 +709,7 @@
             operator()(A0 const& a0 , A1 const& a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
             template <typename A0 , typename A1>
             typename result_of::mem_fun_ptr_gen<
@@ -720,7 +720,7 @@
             operator()(A0 & a0 , A1 & a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
     
     
@@ -738,7 +738,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
             template <typename A0 , typename A1 , typename A2>
             typename result_of::mem_fun_ptr_gen<
@@ -749,7 +749,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
     
     
@@ -767,7 +767,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3>
             typename result_of::mem_fun_ptr_gen<
@@ -778,7 +778,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
     
     
@@ -796,7 +796,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             typename result_of::mem_fun_ptr_gen<
@@ -807,7 +807,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
     
     
@@ -825,7 +825,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             typename result_of::mem_fun_ptr_gen<
@@ -836,7 +836,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
     
     
@@ -854,7 +854,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             typename result_of::mem_fun_ptr_gen<
@@ -865,7 +865,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
     
     
@@ -883,7 +883,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             typename result_of::mem_fun_ptr_gen<
@@ -894,7 +894,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
     
     
@@ -912,7 +912,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             typename result_of::mem_fun_ptr_gen<
@@ -923,7 +923,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
     
     
@@ -941,7 +941,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             typename result_of::mem_fun_ptr_gen<
@@ -952,7 +952,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
     
     
@@ -970,7 +970,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             typename result_of::mem_fun_ptr_gen<
@@ -981,7 +981,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
     
     
@@ -999,7 +999,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             typename result_of::mem_fun_ptr_gen<
@@ -1010,7 +1010,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
     
     
@@ -1028,7 +1028,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             typename result_of::mem_fun_ptr_gen<
@@ -1039,7 +1039,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
     
     
@@ -1057,7 +1057,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             typename result_of::mem_fun_ptr_gen<
@@ -1068,7 +1068,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
     
     
@@ -1086,7 +1086,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             typename result_of::mem_fun_ptr_gen<
@@ -1097,7 +1097,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
     
     
@@ -1115,7 +1115,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             typename result_of::mem_fun_ptr_gen<
@@ -1126,7 +1126,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
     
     
@@ -1144,7 +1144,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             typename result_of::mem_fun_ptr_gen<
@@ -1155,7 +1155,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
     
     
@@ -1173,7 +1173,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             typename result_of::mem_fun_ptr_gen<
@@ -1184,7 +1184,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
     
     
@@ -1202,7 +1202,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             typename result_of::mem_fun_ptr_gen<
@@ -1213,7 +1213,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
     
     
@@ -1231,7 +1231,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
             typename result_of::mem_fun_ptr_gen<
@@ -1242,7 +1242,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
             }
     
     
@@ -1260,7 +1260,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
             typename result_of::mem_fun_ptr_gen<
@@ -1271,7 +1271,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
             }
     
     
@@ -1289,7 +1289,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
             typename result_of::mem_fun_ptr_gen<
@@ -1300,7 +1300,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
             }
     
     
@@ -1318,7 +1318,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
             typename result_of::mem_fun_ptr_gen<
@@ -1329,7 +1329,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
             }
     
     
@@ -1347,7 +1347,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
             typename result_of::mem_fun_ptr_gen<
@@ -1358,7 +1358,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
             }
     
     
@@ -1376,7 +1376,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
             typename result_of::mem_fun_ptr_gen<
@@ -1387,7 +1387,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
             }
     
     
@@ -1405,7 +1405,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
             typename result_of::mem_fun_ptr_gen<
@@ -1416,7 +1416,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
             }
     
     
@@ -1434,7 +1434,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
             typename result_of::mem_fun_ptr_gen<
@@ -1445,7 +1445,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
             }
     
     
@@ -1463,7 +1463,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
             typename result_of::mem_fun_ptr_gen<
@@ -1474,7 +1474,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
             }
     
     
@@ -1492,7 +1492,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
             typename result_of::mem_fun_ptr_gen<
@@ -1503,7 +1503,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
             }
     
     
@@ -1521,7 +1521,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
             typename result_of::mem_fun_ptr_gen<
@@ -1532,7 +1532,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
             }
     
     
@@ -1550,7 +1550,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
             typename result_of::mem_fun_ptr_gen<
@@ -1561,7 +1561,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
             }
     
     
@@ -1579,7 +1579,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
             typename result_of::mem_fun_ptr_gen<
@@ -1590,7 +1590,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
             }
     
     
@@ -1608,7 +1608,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
             typename result_of::mem_fun_ptr_gen<
@@ -1619,7 +1619,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
             }
     
     
@@ -1637,7 +1637,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
             typename result_of::mem_fun_ptr_gen<
@@ -1648,7 +1648,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
             }
     
     
@@ -1666,7 +1666,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
             typename result_of::mem_fun_ptr_gen<
@@ -1677,7 +1677,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
             }
     
     
@@ -1695,7 +1695,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
             typename result_of::mem_fun_ptr_gen<
@@ -1706,7 +1706,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
             }
     
     
@@ -1724,7 +1724,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
             typename result_of::mem_fun_ptr_gen<
@@ -1735,7 +1735,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
             }
     
     
@@ -1753,7 +1753,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
             typename result_of::mem_fun_ptr_gen<
@@ -1764,7 +1764,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
             }
     
     
@@ -1782,7 +1782,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
             typename result_of::mem_fun_ptr_gen<
@@ -1793,7 +1793,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
             }
             Object const& obj;
             MemPtr ptr;

Modified: trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp
==============================================================================
--- trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp (original)
+++ trunk/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -21,7 +21,7 @@
             template <typename Object, typename MemPtr>
             struct mem_fun_ptr_gen<Object, MemPtr>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ boost::phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr>
@@ -36,7 +36,7 @@
             template <typename Object, typename MemPtr, typename A0>
             struct mem_fun_ptr_gen<Object, MemPtr, A0>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -52,7 +52,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -68,7 +68,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -84,7 +84,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -100,7 +100,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -116,7 +116,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -132,7 +132,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -148,7 +148,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -164,7 +164,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -180,7 +180,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -196,7 +196,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -212,7 +212,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -228,7 +228,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -244,7 +244,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -260,7 +260,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -276,7 +276,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -292,7 +292,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -308,7 +308,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -324,7 +324,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -340,7 +340,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -356,7 +356,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -372,7 +372,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -388,7 +388,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -404,7 +404,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -420,7 +420,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -436,7 +436,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -452,7 +452,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -468,7 +468,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -484,7 +484,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -500,7 +500,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -516,7 +516,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -532,7 +532,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -548,7 +548,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -564,7 +564,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -580,7 +580,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -596,7 +596,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -612,7 +612,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -628,7 +628,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -644,7 +644,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -660,7 +660,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -676,7 +676,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -692,7 +692,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -708,7 +708,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -724,7 +724,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -740,7 +740,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -756,7 +756,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -772,7 +772,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -788,7 +788,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -804,7 +804,7 @@
             template <typename Object, typename MemPtr, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48>
             struct mem_fun_ptr_gen<Object, MemPtr, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48>
                 : proto::result_of::make_expr<
- tag::mem_fun_ptr
+ phoenix::tag::mem_fun_ptr
                     , phoenix_domain
                     , Object
                     , MemPtr
@@ -822,7 +822,7 @@
             operator()() const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr);
             }
     
     
@@ -840,7 +840,7 @@
             operator()(A0 const& a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
             template <typename A0>
             typename result_of::mem_fun_ptr_gen<
@@ -851,7 +851,7 @@
             operator()(A0 & a0) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0);
             }
     
     
@@ -869,7 +869,7 @@
             operator()(A0 const& a0 , A1 const& a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
             template <typename A0 , typename A1>
             typename result_of::mem_fun_ptr_gen<
@@ -880,7 +880,7 @@
             operator()(A0 & a0 , A1 & a1) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1);
             }
     
     
@@ -898,7 +898,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
             template <typename A0 , typename A1 , typename A2>
             typename result_of::mem_fun_ptr_gen<
@@ -909,7 +909,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2);
             }
     
     
@@ -927,7 +927,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3>
             typename result_of::mem_fun_ptr_gen<
@@ -938,7 +938,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3);
             }
     
     
@@ -956,7 +956,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
             typename result_of::mem_fun_ptr_gen<
@@ -967,7 +967,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4);
             }
     
     
@@ -985,7 +985,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
             typename result_of::mem_fun_ptr_gen<
@@ -996,7 +996,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5);
             }
     
     
@@ -1014,7 +1014,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
             typename result_of::mem_fun_ptr_gen<
@@ -1025,7 +1025,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
     
     
@@ -1043,7 +1043,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
             typename result_of::mem_fun_ptr_gen<
@@ -1054,7 +1054,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
     
     
@@ -1072,7 +1072,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
             typename result_of::mem_fun_ptr_gen<
@@ -1083,7 +1083,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
     
     
@@ -1101,7 +1101,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
             typename result_of::mem_fun_ptr_gen<
@@ -1112,7 +1112,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
     
     
@@ -1130,7 +1130,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
             typename result_of::mem_fun_ptr_gen<
@@ -1141,7 +1141,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10);
             }
     
     
@@ -1159,7 +1159,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
             typename result_of::mem_fun_ptr_gen<
@@ -1170,7 +1170,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11);
             }
     
     
@@ -1188,7 +1188,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
             typename result_of::mem_fun_ptr_gen<
@@ -1199,7 +1199,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12);
             }
     
     
@@ -1217,7 +1217,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
             typename result_of::mem_fun_ptr_gen<
@@ -1228,7 +1228,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13);
             }
     
     
@@ -1246,7 +1246,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
             typename result_of::mem_fun_ptr_gen<
@@ -1257,7 +1257,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14);
             }
     
     
@@ -1275,7 +1275,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
             typename result_of::mem_fun_ptr_gen<
@@ -1286,7 +1286,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15);
             }
     
     
@@ -1304,7 +1304,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
             typename result_of::mem_fun_ptr_gen<
@@ -1315,7 +1315,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16);
             }
     
     
@@ -1333,7 +1333,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
             typename result_of::mem_fun_ptr_gen<
@@ -1344,7 +1344,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17);
             }
     
     
@@ -1362,7 +1362,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
             typename result_of::mem_fun_ptr_gen<
@@ -1373,7 +1373,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18);
             }
     
     
@@ -1391,7 +1391,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
             typename result_of::mem_fun_ptr_gen<
@@ -1402,7 +1402,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19);
             }
     
     
@@ -1420,7 +1420,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20>
             typename result_of::mem_fun_ptr_gen<
@@ -1431,7 +1431,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20);
             }
     
     
@@ -1449,7 +1449,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21>
             typename result_of::mem_fun_ptr_gen<
@@ -1460,7 +1460,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21);
             }
     
     
@@ -1478,7 +1478,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22>
             typename result_of::mem_fun_ptr_gen<
@@ -1489,7 +1489,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22);
             }
     
     
@@ -1507,7 +1507,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23>
             typename result_of::mem_fun_ptr_gen<
@@ -1518,7 +1518,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23);
             }
     
     
@@ -1536,7 +1536,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24>
             typename result_of::mem_fun_ptr_gen<
@@ -1547,7 +1547,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24);
             }
     
     
@@ -1565,7 +1565,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25>
             typename result_of::mem_fun_ptr_gen<
@@ -1576,7 +1576,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25);
             }
     
     
@@ -1594,7 +1594,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26>
             typename result_of::mem_fun_ptr_gen<
@@ -1605,7 +1605,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26);
             }
     
     
@@ -1623,7 +1623,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27>
             typename result_of::mem_fun_ptr_gen<
@@ -1634,7 +1634,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27);
             }
     
     
@@ -1652,7 +1652,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28>
             typename result_of::mem_fun_ptr_gen<
@@ -1663,7 +1663,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28);
             }
     
     
@@ -1681,7 +1681,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29>
             typename result_of::mem_fun_ptr_gen<
@@ -1692,7 +1692,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29);
             }
     
     
@@ -1710,7 +1710,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30>
             typename result_of::mem_fun_ptr_gen<
@@ -1721,7 +1721,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30);
             }
     
     
@@ -1739,7 +1739,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31>
             typename result_of::mem_fun_ptr_gen<
@@ -1750,7 +1750,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31);
             }
     
     
@@ -1768,7 +1768,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32>
             typename result_of::mem_fun_ptr_gen<
@@ -1779,7 +1779,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32);
             }
     
     
@@ -1797,7 +1797,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33>
             typename result_of::mem_fun_ptr_gen<
@@ -1808,7 +1808,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33);
             }
     
     
@@ -1826,7 +1826,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34>
             typename result_of::mem_fun_ptr_gen<
@@ -1837,7 +1837,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34);
             }
     
     
@@ -1855,7 +1855,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35>
             typename result_of::mem_fun_ptr_gen<
@@ -1866,7 +1866,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35);
             }
     
     
@@ -1884,7 +1884,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36>
             typename result_of::mem_fun_ptr_gen<
@@ -1895,7 +1895,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36);
             }
     
     
@@ -1913,7 +1913,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37>
             typename result_of::mem_fun_ptr_gen<
@@ -1924,7 +1924,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37);
             }
     
     
@@ -1942,7 +1942,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38>
             typename result_of::mem_fun_ptr_gen<
@@ -1953,7 +1953,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38);
             }
     
     
@@ -1971,7 +1971,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39>
             typename result_of::mem_fun_ptr_gen<
@@ -1982,7 +1982,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39);
             }
     
     
@@ -2000,7 +2000,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40>
             typename result_of::mem_fun_ptr_gen<
@@ -2011,7 +2011,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40);
             }
     
     
@@ -2029,7 +2029,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41>
             typename result_of::mem_fun_ptr_gen<
@@ -2040,7 +2040,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41);
             }
     
     
@@ -2058,7 +2058,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42>
             typename result_of::mem_fun_ptr_gen<
@@ -2069,7 +2069,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42);
             }
     
     
@@ -2087,7 +2087,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43>
             typename result_of::mem_fun_ptr_gen<
@@ -2098,7 +2098,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42 , A43 & a43) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43);
             }
     
     
@@ -2116,7 +2116,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44>
             typename result_of::mem_fun_ptr_gen<
@@ -2127,7 +2127,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42 , A43 & a43 , A44 & a44) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44);
             }
     
     
@@ -2145,7 +2145,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45>
             typename result_of::mem_fun_ptr_gen<
@@ -2156,7 +2156,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42 , A43 & a43 , A44 & a44 , A45 & a45) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45);
             }
     
     
@@ -2174,7 +2174,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46>
             typename result_of::mem_fun_ptr_gen<
@@ -2185,7 +2185,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42 , A43 & a43 , A44 & a44 , A45 & a45 , A46 & a46) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46);
             }
     
     
@@ -2203,7 +2203,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46 , A47 const& a47) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47>
             typename result_of::mem_fun_ptr_gen<
@@ -2214,7 +2214,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42 , A43 & a43 , A44 & a44 , A45 & a45 , A46 & a46 , A47 & a47) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47);
             }
     
     
@@ -2232,7 +2232,7 @@
             operator()(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9 , A10 const& a10 , A11 const& a11 , A12 const& a12 , A13 const& a13 , A14 const& a14 , A15 const& a15 , A16 const& a16 , A17 const& a17 , A18 const& a18 , A19 const& a19 , A20 const& a20 , A21 const& a21 , A22 const& a22 , A23 const& a23 , A24 const& a24 , A25 const& a25 , A26 const& a26 , A27 const& a27 , A28 const& a28 , A29 const& a29 , A30 const& a30 , A31 const& a31 , A32 const& a32 , A33 const& a33 , A34 const& a34 , A35 const& a35 , A36 const& a36 , A37 const& a37 , A38 const& a38 , A39 const& a39 , A40 const& a40 , A41 const& a41 , A42 const& a42 , A43 const& a43 , A44 const& a44 , A45 const& a45 , A46 const& a46 , A47 const& a47 , A48 const& a48) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48);
             }
             template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48>
             typename result_of::mem_fun_ptr_gen<
@@ -2243,7 +2243,7 @@
             operator()(A0 & a0 , A1 & a1 , A2 & a2 , A3 & a3 , A4 & a4 , A5 & a5 , A6 & a6 , A7 & a7 , A8 & a8 , A9 & a9 , A10 & a10 , A11 & a11 , A12 & a12 , A13 & a13 , A14 & a14 , A15 & a15 , A16 & a16 , A17 & a17 , A18 & a18 , A19 & a19 , A20 & a20 , A21 & a21 , A22 & a22 , A23 & a23 , A24 & a24 , A25 & a25 , A26 & a26 , A27 & a27 , A28 & a28 , A29 & a29 , A30 & a30 , A31 & a31 , A32 & a32 , A33 & a33 , A34 & a34 , A35 & a35 , A36 & a36 , A37 & a37 , A38 & a38 , A39 & a39 , A40 & a40 , A41 & a41 , A42 & a42 , A43 & a43 , A44 & a44 , A45 & a45 , A46 & a46 , A47 & a47 , A48 & a48) const
             {
                 return proto::make_expr<
- tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48);
+ phoenix::tag::mem_fun_ptr, phoenix_domain>(obj, ptr, a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19 , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39 , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48);
             }
             Object const& obj;
             MemPtr ptr;

Modified: trunk/boost/phoenix/operator/member.hpp
==============================================================================
--- trunk/boost/phoenix/operator/member.hpp (original)
+++ trunk/boost/phoenix/operator/member.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -61,16 +61,14 @@
 
 namespace boost { namespace phoenix
 {
- BOOST_PHOENIX_BINARY_OPERATORS(
- (mem_ptr)
- )
+ BOOST_PHOENIX_BINARY_OPERATORS((mem_ptr))
 
     template <typename Object, typename MemPtr>
     inline
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
- >::type
+ >::type
     operator->*(actor<Object> const& obj, MemPtr ptr)
     {
         return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);

Modified: trunk/boost/phoenix/operator/preprocessed/member_10.hpp
==============================================================================
--- trunk/boost/phoenix/operator/preprocessed/member_10.hpp (original)
+++ trunk/boost/phoenix/operator/preprocessed/member_10.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,7 +5,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)
 ==============================================================================*/
-namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; std::ostream &operator<<( std::ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; temp
late < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typena
me A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
+namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0
, A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename
A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
 namespace boost { namespace phoenix
 {
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag::mem_ptr, Lhs, Rhs> {}; } namespace rule { struct mem_ptr : expression::mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : enable_rule<rule::mem_ptr, Dummy> {};
@@ -14,7 +14,7 @@
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
- >::type
+ >::type
     operator->*(actor<Object> const& obj, MemPtr ptr)
     {
         return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);

Modified: trunk/boost/phoenix/operator/preprocessed/member_20.hpp
==============================================================================
--- trunk/boost/phoenix/operator/preprocessed/member_20.hpp (original)
+++ trunk/boost/phoenix/operator/preprocessed/member_20.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,7 +5,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)
 ==============================================================================*/
-namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; std::ostream &operator<<( std::ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr
< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_
ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_
fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 ,
 typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 ,
 A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :
: rule:: mem_fun_ptr , Dummy > {}; } }
+namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2
> : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , type
name A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::
phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , type
name A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A
7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 ,
A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable
_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
 namespace boost { namespace phoenix
 {
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag::mem_ptr, Lhs, Rhs> {}; } namespace rule { struct mem_ptr : expression::mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : enable_rule<rule::mem_ptr, Dummy> {};
@@ -14,7 +14,7 @@
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
- >::type
+ >::type
     operator->*(actor<Object> const& obj, MemPtr ptr)
     {
         return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);

Modified: trunk/boost/phoenix/operator/preprocessed/member_30.hpp
==============================================================================
--- trunk/boost/phoenix/operator/preprocessed/member_30.hpp (original)
+++ trunk/boost/phoenix/operator/preprocessed/member_30.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,7 +5,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)
 ==============================================================================*/
-namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; std::ostream &operator<<( std::ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typena
me A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > :
 boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typ
ename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6
 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typenam
e A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 ,
 typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; template < typename A0 , typename A1 , typename A2 , typename
A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > : boost::phoenix::expr< tag:: mem_fun_ptr ,
A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , type
name A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
, A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , type
name A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 ,
 A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace
 boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
+namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A
0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A
2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typena
me A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1
 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A
4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , ty
pename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; template < typename A0 , typename A1
, typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > : boost::phoenix::e
xpr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename
A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 ,
 A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename
A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A
7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A1
2 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_gramma
r > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
 namespace boost { namespace phoenix
 {
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag::mem_ptr, Lhs, Rhs> {}; } namespace rule { struct mem_ptr : expression::mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : enable_rule<rule::mem_ptr, Dummy> {};
@@ -14,7 +14,7 @@
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
- >::type
+ >::type
     operator->*(actor<Object> const& obj, MemPtr ptr)
     {
         return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);

Modified: trunk/boost/phoenix/operator/preprocessed/member_40.hpp
==============================================================================
--- trunk/boost/phoenix/operator/preprocessed/member_40.hpp (original)
+++ trunk/boost/phoenix/operator/preprocessed/member_40.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,7 +5,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)
 ==============================================================================*/
-namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; std::ostream &operator<<( std::ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename A30 = void , typename A31 = void , typename A32 = void , typename A33 = void , typename A34 = void , typename A35 = void , typename A36 = void , typename A
37 = void , typename A38 = void , typename A39 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr<
 tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > stru
ct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typ
ename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::p
hoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2
 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 ,
A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typen
ame A18 , typename A19 , typename A20 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > {}; template < typename A0 , typename A1 , t
ypename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 > struct mem_fun_ptr< A0 , A1 , A2
 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >
 {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A1
7 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
, A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > {}; template < typename A0 , typename A1 , typename A2 , typename
A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typ
ename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename
 A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , t
ypename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29
 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A3
1 , typename A32 , typename A33 , typename A34 , typename A35 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31
, typename A32 , typename A33 , typename A34 , typename A35 , typename A36 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typ
ename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A2
6 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
+namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename A30 = void , typename A31 = void , typename A32 = void , typename A33 = void , typename A34 = void , typename A35 = void , typenam
e A36 = void , typename A37 = void , typename A38 = void , typename A39 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5
> : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typenam
e A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typena
me A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: m
em_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 ,
 A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A
16 , typename A17 , typename A18 , typename A19 , typename A20 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > {}; template < type
name A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 > struct
mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
, A21 , A22 , A23 , A24 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , t
ypename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A
9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A
8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > {}; template < typename A0 , typename A1
, typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename
 A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18
, typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typena
me A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , ty
pename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , t
ypename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typ
ename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename
 A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , t
ypename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun
_ptr , Dummy > {}; } }
 namespace boost { namespace phoenix
 {
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag::mem_ptr, Lhs, Rhs> {}; } namespace rule { struct mem_ptr : expression::mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : enable_rule<rule::mem_ptr, Dummy> {};
@@ -14,7 +14,7 @@
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
- >::type
+ >::type
     operator->*(actor<Object> const& obj, MemPtr ptr)
     {
         return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);

Modified: trunk/boost/phoenix/operator/preprocessed/member_50.hpp
==============================================================================
--- trunk/boost/phoenix/operator/preprocessed/member_50.hpp (original)
+++ trunk/boost/phoenix/operator/preprocessed/member_50.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,7 +5,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)
 ==============================================================================*/
-namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; std::ostream &operator<<( std::ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename A30 = void , typename A31 = void , typename A32 = void , typename A33 = void , typename A34 = void , typename A35 = void , typename A36 = void , typename A
37 = void , typename A38 = void , typename A39 = void , typename A40 = void , typename A41 = void , typename A42 = void , typename A43 = void , typename A44 = void , typename A45 = void , typename A46 = void , typename A47 = void , typename A48 = void , typename A49 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 > : boost::phoenix::exp
r< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : boost::phoenix::expr< tag:
: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boost::phoenix::expr< tag::
mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typenam
e A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename
 A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typ
ename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > {}; template < typename A0 , typename A1 , typename A2 , typ
ename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A2
0 , A21 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typenam
e A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 ,
 A19 , A20 , A21 , A22 , A23 , A24 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > {}; template < typename A0 , typename A1 , typename
 A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typena
me A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
, A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A
3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A
28 , A29 , A30 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename
 A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typena
me A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , ty
pename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , t
ypename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typ
ename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename
 A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , t
ypename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename
 A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 > {
}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 ,
A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 ,
A41 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 ,
 A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 ,
 typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A
21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , type
name A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A
16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20
, A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , type
name A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14
 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28
, A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
+namespace boost { namespace phoenix { namespace tag { struct mem_fun_ptr {}; template <typename Ostream> inline Ostream &operator<<( Ostream & os , mem_fun_ptr) { os << "mem_fun_ptr"; return os; } } namespace expression { template < typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void , typename A20 = void , typename A21 = void , typename A22 = void , typename A23 = void , typename A24 = void , typename A25 = void , typename A26 = void , typename A27 = void , typename A28 = void , typename A29 = void , typename A30 = void , typename A31 = void , typename A32 = void , typename A33 = void , typename A34 = void , typename A35 = void , typenam
e A36 = void , typename A37 = void , typename A38 = void , typename A39 = void , typename A40 = void , typename A41 = void , typename A42 = void , typename A43 = void , typename A44 = void , typename A45 = void , typename A46 = void , typename A47 = void , typename A48 = void , typename A49 = void , typename Dummy = void > struct mem_fun_ptr; template < typename A0 > struct mem_fun_ptr< A0 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 > {}; template < typename A0 , typename A1 > struct mem_fun_ptr< A0 , A1 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 > {}; template < typename A0 , typename A1 , typename A2 > struct mem_fun_ptr< A0 , A1 , A2 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 > struct mem_fun_ptr< A0 , A1 , A2 , A3 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A
4 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > : b
oost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > : boo
st::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A
5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
, typename A12 , typename A13 , typename A14 , typename A15 , typename A16 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename
 A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 > {}; template < typename A0 , typena
me A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A
16 , A17 , A18 , A19 , A20 , A21 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
, A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 > {}; template < typename A0
 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A1
7 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 ,
 A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > : boost::phoenix::expr< tag:: mem_f
un_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 ,
A24 , A25 , A26 , A27 , A28 , A29 , A30 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 > {}; template < typename A0 , typename A1 , typename A2 , typename A3
 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A
9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typenam
e A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typena
me A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename
 A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13
, typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typena
me A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4
 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 ,
A36 , A37 , A38 , A39 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 ,
 A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 ,
 A37 , A38 , A39 , A40 , A41 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A
7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , type
name A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 ,
typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 > {}; template < typename A0 , typename A1 , typename A2 , typenam
e A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 ,
A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename
A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 > {}; template < typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , ty
pename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19 , typename A20 , typename A21 , typename A22 , typename A23 , typename A24 , typename A25 , typename A26 , typename A27 , typename A28 , typename A29 , typename A30 , typename A31 , typename A32 , typename A33 , typename A34 , typename A35 , typename A36 , typename A37 , typename A38 , typename A39 , typename A40 , typename A41 , typename A42 , typename A43 , typename A44 , typename A45 , typename A46 , typename A47 , typename A48 > struct mem_fun_ptr< A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 > : boost::phoenix::expr< tag:: mem_fun_ptr , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24
 , A25 , A26 , A27 , A28 , A29 , A30 , A31 , A32 , A33 , A34 , A35 , A36 , A37 , A38 , A39 , A40 , A41 , A42 , A43 , A44 , A45 , A46 , A47 , A48 > {}; } namespace rule { struct mem_fun_ptr : expression:: mem_fun_ptr < proto::vararg< meta_grammar > > {}; } } } namespace boost { namespace phoenix { template <typename Dummy> struct meta_grammar::case_< boost :: phoenix :: tag:: mem_fun_ptr , Dummy > : enable_rule< boost :: phoenix :: rule:: mem_fun_ptr , Dummy > {}; } }
 namespace boost { namespace phoenix
 {
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag::mem_ptr, Lhs, Rhs> {}; } namespace rule { struct mem_ptr : expression::mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag::mem_ptr, Dummy> : enable_rule<rule::mem_ptr, Dummy> {};
@@ -14,7 +14,7 @@
     typename enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
- >::type
+ >::type
     operator->*(actor<Object> const& obj, MemPtr ptr)
     {
         return detail::mem_fun_ptr_gen<actor<Object>, MemPtr>(obj, ptr);

Modified: trunk/boost/phoenix/phoenix.hpp
==============================================================================
--- trunk/boost/phoenix/phoenix.hpp (original)
+++ trunk/boost/phoenix/phoenix.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -8,9 +8,6 @@
 #ifndef BOOST_PHOENIX_PHOENIX_HPP
 #define BOOST_PHOENIX_PHOENIX_HPP
 
-#ifdef BOOST_PHOENIX_USE_V2_OVER_V3
-#include <boost/spirit/home/phoenix.hpp>
-#else
 #include <boost/phoenix/core.hpp>
 #include <boost/phoenix/function.hpp>
 #include <boost/phoenix/operator.hpp>
@@ -19,6 +16,5 @@
 #include <boost/phoenix/scope.hpp>
 #include <boost/phoenix/bind.hpp>
 #include <boost/phoenix/stl.hpp>
-#endif
 
 #endif

Modified: trunk/boost/phoenix/scope/local_variable.hpp
==============================================================================
--- trunk/boost/phoenix/scope/local_variable.hpp (original)
+++ trunk/boost/phoenix/scope/local_variable.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -20,7 +20,6 @@
 
 namespace boost { namespace phoenix
 {
-
     namespace detail
     {
         template <typename Key>
@@ -70,7 +69,6 @@
         template <typename Map, typename Context>
         struct local_var_def_is_nullary;
 
-
         struct local_var_def_eval;
             
         #include <boost/phoenix/scope/detail/local_var_def.hpp>
@@ -84,12 +82,12 @@
         };
 
         template <typename Dummy>
- struct scope_is_nullary_actions::when<rule::custom_terminal, Dummy>
+ struct scope_is_nullary_actions::when<boost::phoenix::rule::custom_terminal, Dummy>
             : proto::or_<
- proto::when<rule::local_variable, mpl::true_()>
+ proto::when<boost::phoenix::rule::local_variable, mpl::true_()>
               , proto::otherwise<
                     boost::phoenix::result_of::is_nullary<
- custom_terminal<proto::_value>
+ boost::phoenix::custom_terminal<proto::_value>
>()
>
>

Modified: trunk/boost/phoenix/scope/scoped_environment.hpp
==============================================================================
--- trunk/boost/phoenix/scope/scoped_environment.hpp (original)
+++ trunk/boost/phoenix/scope/scoped_environment.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -72,12 +72,12 @@
         { \
             typedef \
                 typename fusion::result_of::INTRINSIC< \
- typename mpl::eval_if< \
+ typename mpl::eval_if_c< \
                         is_const< \
                             typename remove_reference< \
                                 typename Seq::env_type \
>::type \
- > \
+ >::value \
                       , add_const< \
                             typename proto::detail::uncvref< \
                                 typename Seq::env_type \
@@ -106,12 +106,12 @@
         {
             typedef
                 typename fusion::result_of::value_at<
- typename mpl::eval_if<
+ typename mpl::eval_if_c<
                         is_const<
                             typename remove_reference<
                                 typename Seq::env_type
>::type
- >
+ >::value
                       , add_const<
                             typename proto::detail::uncvref<
                                 typename Seq::env_type
@@ -131,12 +131,12 @@
         {
             typedef
                 typename fusion::result_of::at<
- typename mpl::eval_if<
+ typename mpl::eval_if_c<
                         is_const<
                             typename remove_reference<
                                 typename Seq::env_type
>::type
- >
+ >::value
                       , add_const<
                             typename proto::detail::uncvref<
                                 typename Seq::env_type

Modified: trunk/boost/phoenix/statement/detail/catch_push_back.hpp
==============================================================================
--- trunk/boost/phoenix/statement/detail/catch_push_back.hpp (original)
+++ trunk/boost/phoenix/statement/detail/catch_push_back.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -62,14 +62,14 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
 
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, BOOST_PHOENIX_CATCH_PUSH_BACK_R0, _)
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -88,7 +88,7 @@
                           , _
                         )
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -100,13 +100,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
 
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, BOOST_PHOENIX_CATCH_PUSH_BACK_R0, _)
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -125,7 +125,7 @@
                           , _
                         )
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp
==============================================================================
--- trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp (original)
+++ trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -17,13 +17,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -37,7 +37,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -49,12 +49,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -68,7 +68,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -86,13 +86,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -106,7 +106,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -118,12 +118,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -137,7 +137,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -155,13 +155,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -175,7 +175,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -187,12 +187,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -206,7 +206,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -224,13 +224,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -244,7 +244,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -256,12 +256,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -275,7 +275,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -293,13 +293,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -313,7 +313,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -325,12 +325,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -344,7 +344,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -362,13 +362,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -382,7 +382,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -394,12 +394,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -413,7 +413,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -431,13 +431,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -451,7 +451,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -463,12 +463,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -482,7 +482,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -500,13 +500,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -520,7 +520,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -532,12 +532,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -551,7 +551,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -569,13 +569,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -589,7 +589,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -601,12 +601,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -620,7 +620,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp
==============================================================================
--- trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp (original)
+++ trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -17,13 +17,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -37,7 +37,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -49,12 +49,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -68,7 +68,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -86,13 +86,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -106,7 +106,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -118,12 +118,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -137,7 +137,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -155,13 +155,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -175,7 +175,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -187,12 +187,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -206,7 +206,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -224,13 +224,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -244,7 +244,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -256,12 +256,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -275,7 +275,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -293,13 +293,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -313,7 +313,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -325,12 +325,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -344,7 +344,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -362,13 +362,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -382,7 +382,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -394,12 +394,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -413,7 +413,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -431,13 +431,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -451,7 +451,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -463,12 +463,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -482,7 +482,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -500,13 +500,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -520,7 +520,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -532,12 +532,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -551,7 +551,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -569,13 +569,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -589,7 +589,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -601,12 +601,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -620,7 +620,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -638,13 +638,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -658,7 +658,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -670,12 +670,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -689,7 +689,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -707,13 +707,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -727,7 +727,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -739,12 +739,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -758,7 +758,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -776,13 +776,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -796,7 +796,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -808,12 +808,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -827,7 +827,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -845,13 +845,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -865,7 +865,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -877,12 +877,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -896,7 +896,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -914,13 +914,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -934,7 +934,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -946,12 +946,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -965,7 +965,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -983,13 +983,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1003,7 +1003,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1015,12 +1015,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1034,7 +1034,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1052,13 +1052,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1072,7 +1072,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1084,12 +1084,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1103,7 +1103,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1121,13 +1121,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1141,7 +1141,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1153,12 +1153,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1172,7 +1172,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1190,13 +1190,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1210,7 +1210,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1222,12 +1222,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1241,7 +1241,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1259,13 +1259,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1279,7 +1279,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1291,12 +1291,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1310,7 +1310,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp
==============================================================================
--- trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp (original)
+++ trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -17,13 +17,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -37,7 +37,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -49,12 +49,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -68,7 +68,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -86,13 +86,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -106,7 +106,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -118,12 +118,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -137,7 +137,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -155,13 +155,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -175,7 +175,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -187,12 +187,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -206,7 +206,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -224,13 +224,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -244,7 +244,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -256,12 +256,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -275,7 +275,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -293,13 +293,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -313,7 +313,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -325,12 +325,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -344,7 +344,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -362,13 +362,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -382,7 +382,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -394,12 +394,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -413,7 +413,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -431,13 +431,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -451,7 +451,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -463,12 +463,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -482,7 +482,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -500,13 +500,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -520,7 +520,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -532,12 +532,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -551,7 +551,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -569,13 +569,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -589,7 +589,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -601,12 +601,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -620,7 +620,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -638,13 +638,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -658,7 +658,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -670,12 +670,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -689,7 +689,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -707,13 +707,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -727,7 +727,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -739,12 +739,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -758,7 +758,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -776,13 +776,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -796,7 +796,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -808,12 +808,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -827,7 +827,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -845,13 +845,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -865,7 +865,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -877,12 +877,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -896,7 +896,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -914,13 +914,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -934,7 +934,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -946,12 +946,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -965,7 +965,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -983,13 +983,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1003,7 +1003,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1015,12 +1015,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1034,7 +1034,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1052,13 +1052,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1072,7 +1072,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1084,12 +1084,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1103,7 +1103,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1121,13 +1121,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1141,7 +1141,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1153,12 +1153,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1172,7 +1172,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1190,13 +1190,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1210,7 +1210,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1222,12 +1222,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1241,7 +1241,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1259,13 +1259,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1279,7 +1279,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1291,12 +1291,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1310,7 +1310,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1328,13 +1328,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1348,7 +1348,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1360,12 +1360,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1379,7 +1379,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1397,13 +1397,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1417,7 +1417,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1429,12 +1429,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1448,7 +1448,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1466,13 +1466,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1486,7 +1486,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1498,12 +1498,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1517,7 +1517,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1535,13 +1535,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1555,7 +1555,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1567,12 +1567,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1586,7 +1586,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1604,13 +1604,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1624,7 +1624,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1636,12 +1636,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1655,7 +1655,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1673,13 +1673,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1693,7 +1693,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1705,12 +1705,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1724,7 +1724,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1742,13 +1742,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1762,7 +1762,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1774,12 +1774,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1793,7 +1793,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1811,13 +1811,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1831,7 +1831,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1843,12 +1843,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1862,7 +1862,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1880,13 +1880,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1900,7 +1900,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1912,12 +1912,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1931,7 +1931,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1949,13 +1949,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1969,7 +1969,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1981,12 +1981,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2000,7 +2000,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp
==============================================================================
--- trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp (original)
+++ trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -17,13 +17,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -37,7 +37,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -49,12 +49,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -68,7 +68,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -86,13 +86,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -106,7 +106,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -118,12 +118,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -137,7 +137,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -155,13 +155,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -175,7 +175,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -187,12 +187,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -206,7 +206,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -224,13 +224,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -244,7 +244,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -256,12 +256,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -275,7 +275,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -293,13 +293,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -313,7 +313,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -325,12 +325,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -344,7 +344,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -362,13 +362,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -382,7 +382,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -394,12 +394,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -413,7 +413,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -431,13 +431,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -451,7 +451,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -463,12 +463,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -482,7 +482,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -500,13 +500,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -520,7 +520,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -532,12 +532,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -551,7 +551,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -569,13 +569,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -589,7 +589,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -601,12 +601,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -620,7 +620,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -638,13 +638,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -658,7 +658,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -670,12 +670,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -689,7 +689,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -707,13 +707,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -727,7 +727,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -739,12 +739,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -758,7 +758,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -776,13 +776,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -796,7 +796,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -808,12 +808,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -827,7 +827,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -845,13 +845,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -865,7 +865,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -877,12 +877,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -896,7 +896,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -914,13 +914,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -934,7 +934,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -946,12 +946,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -965,7 +965,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -983,13 +983,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1003,7 +1003,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1015,12 +1015,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1034,7 +1034,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1052,13 +1052,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1072,7 +1072,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1084,12 +1084,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1103,7 +1103,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1121,13 +1121,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1141,7 +1141,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1153,12 +1153,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1172,7 +1172,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1190,13 +1190,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1210,7 +1210,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1222,12 +1222,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1241,7 +1241,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1259,13 +1259,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1279,7 +1279,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1291,12 +1291,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1310,7 +1310,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1328,13 +1328,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1348,7 +1348,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1360,12 +1360,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1379,7 +1379,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1397,13 +1397,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1417,7 +1417,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1429,12 +1429,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1448,7 +1448,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1466,13 +1466,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1486,7 +1486,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1498,12 +1498,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1517,7 +1517,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1535,13 +1535,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1555,7 +1555,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1567,12 +1567,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1586,7 +1586,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1604,13 +1604,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1624,7 +1624,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1636,12 +1636,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1655,7 +1655,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1673,13 +1673,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1693,7 +1693,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1705,12 +1705,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1724,7 +1724,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1742,13 +1742,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1762,7 +1762,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1774,12 +1774,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1793,7 +1793,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1811,13 +1811,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1831,7 +1831,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1843,12 +1843,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1862,7 +1862,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1880,13 +1880,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1900,7 +1900,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1912,12 +1912,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1931,7 +1931,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1949,13 +1949,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1969,7 +1969,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1981,12 +1981,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2000,7 +2000,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2018,13 +2018,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2038,7 +2038,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2050,12 +2050,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2069,7 +2069,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2087,13 +2087,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2107,7 +2107,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2119,12 +2119,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2138,7 +2138,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2156,13 +2156,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2176,7 +2176,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2188,12 +2188,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2207,7 +2207,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2225,13 +2225,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2245,7 +2245,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2257,12 +2257,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2276,7 +2276,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2294,13 +2294,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2314,7 +2314,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2326,12 +2326,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2345,7 +2345,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2363,13 +2363,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2383,7 +2383,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2395,12 +2395,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2414,7 +2414,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2432,13 +2432,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2452,7 +2452,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2464,12 +2464,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2483,7 +2483,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2501,13 +2501,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2521,7 +2521,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2533,12 +2533,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2552,7 +2552,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2570,13 +2570,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2590,7 +2590,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2602,12 +2602,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2621,7 +2621,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2639,13 +2639,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2659,7 +2659,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2671,12 +2671,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2690,7 +2690,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp
==============================================================================
--- trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp (original)
+++ trunk/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -17,13 +17,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -37,7 +37,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -49,12 +49,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -68,7 +68,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -86,13 +86,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -106,7 +106,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -118,12 +118,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -137,7 +137,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -155,13 +155,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -175,7 +175,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -187,12 +187,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -206,7 +206,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -224,13 +224,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -244,7 +244,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -256,12 +256,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -275,7 +275,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -293,13 +293,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -313,7 +313,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -325,12 +325,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -344,7 +344,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -362,13 +362,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -382,7 +382,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -394,12 +394,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -413,7 +413,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -431,13 +431,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -451,7 +451,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -463,12 +463,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -482,7 +482,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -500,13 +500,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -520,7 +520,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -532,12 +532,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -551,7 +551,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -569,13 +569,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -589,7 +589,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -601,12 +601,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -620,7 +620,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -638,13 +638,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -658,7 +658,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -670,12 +670,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -689,7 +689,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -707,13 +707,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -727,7 +727,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -739,12 +739,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -758,7 +758,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -776,13 +776,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -796,7 +796,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -808,12 +808,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -827,7 +827,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -845,13 +845,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -865,7 +865,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -877,12 +877,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -896,7 +896,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -914,13 +914,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -934,7 +934,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -946,12 +946,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -965,7 +965,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -983,13 +983,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1003,7 +1003,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1015,12 +1015,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1034,7 +1034,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1052,13 +1052,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1072,7 +1072,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1084,12 +1084,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1103,7 +1103,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1121,13 +1121,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1141,7 +1141,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1153,12 +1153,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1172,7 +1172,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1190,13 +1190,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1210,7 +1210,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1222,12 +1222,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1241,7 +1241,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1259,13 +1259,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1279,7 +1279,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1291,12 +1291,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1310,7 +1310,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1328,13 +1328,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1348,7 +1348,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1360,12 +1360,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1379,7 +1379,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1397,13 +1397,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1417,7 +1417,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1429,12 +1429,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1448,7 +1448,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1466,13 +1466,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1486,7 +1486,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1498,12 +1498,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1517,7 +1517,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1535,13 +1535,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1555,7 +1555,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1567,12 +1567,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1586,7 +1586,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1604,13 +1604,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1624,7 +1624,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1636,12 +1636,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1655,7 +1655,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1673,13 +1673,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1693,7 +1693,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1705,12 +1705,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1724,7 +1724,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1742,13 +1742,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1762,7 +1762,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1774,12 +1774,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1793,7 +1793,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1811,13 +1811,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1831,7 +1831,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1843,12 +1843,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1862,7 +1862,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1880,13 +1880,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1900,7 +1900,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1912,12 +1912,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1931,7 +1931,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -1949,13 +1949,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -1969,7 +1969,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -1981,12 +1981,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2000,7 +2000,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2018,13 +2018,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2038,7 +2038,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2050,12 +2050,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2069,7 +2069,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2087,13 +2087,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2107,7 +2107,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2119,12 +2119,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2138,7 +2138,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2156,13 +2156,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2176,7 +2176,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2188,12 +2188,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2207,7 +2207,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2225,13 +2225,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2245,7 +2245,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2257,12 +2257,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2276,7 +2276,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2294,13 +2294,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2314,7 +2314,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2326,12 +2326,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2345,7 +2345,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2363,13 +2363,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2383,7 +2383,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2395,12 +2395,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2414,7 +2414,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2432,13 +2432,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2452,7 +2452,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2464,12 +2464,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2483,7 +2483,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2501,13 +2501,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2521,7 +2521,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2533,12 +2533,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2552,7 +2552,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2570,13 +2570,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2590,7 +2590,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2602,12 +2602,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2621,7 +2621,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2639,13 +2639,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2659,7 +2659,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2671,12 +2671,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2690,7 +2690,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2708,13 +2708,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2728,7 +2728,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2740,12 +2740,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2759,7 +2759,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2777,13 +2777,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2797,7 +2797,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2809,12 +2809,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2828,7 +2828,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2846,13 +2846,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2866,7 +2866,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2878,12 +2878,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2897,7 +2897,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2915,13 +2915,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2935,7 +2935,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -2947,12 +2947,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -2966,7 +2966,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -2984,13 +2984,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3004,7 +3004,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -3016,12 +3016,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3035,7 +3035,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -3053,13 +3053,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3073,7 +3073,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -3085,12 +3085,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3104,7 +3104,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -3122,13 +3122,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3142,7 +3142,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -3154,12 +3154,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3173,7 +3173,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -3191,13 +3191,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type , typename proto::result_of::child_c<TryCatch, 47>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3211,7 +3211,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch) , proto::child_c<47>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -3223,12 +3223,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type , typename proto::result_of::child_c<TryCatch, 47>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3242,7 +3242,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch) , proto::child_c<47>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -3260,13 +3260,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type , typename proto::result_of::child_c<TryCatch, 47>::type , typename proto::result_of::child_c<TryCatch, 48>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3280,7 +3280,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch) , proto::child_c<47>(try_catch) , proto::child_c<48>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -3292,12 +3292,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type , typename proto::result_of::child_c<TryCatch, 47>::type , typename proto::result_of::child_c<TryCatch, 48>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3311,7 +3311,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch) , proto::child_c<47>(try_catch) , proto::child_c<48>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );
@@ -3329,13 +3329,13 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type , typename proto::result_of::child_c<TryCatch, 47>::type , typename proto::result_of::child_c<TryCatch, 48>::type , typename proto::result_of::child_c<TryCatch, 49>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3349,7 +3349,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch) , proto::child_c<47>(try_catch) , proto::child_c<48>(try_catch) , proto::child_c<49>(try_catch)
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -3361,12 +3361,12 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
- typedef expression::try_catch<
+ typedef phoenix::expression::try_catch<
                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17
>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type , typename proto::result_of::child_c<TryCatch, 30>::type , typename proto::result_of::child_c<TryCatch, 31>::type , typename proto::result_of::child_c<TryCatch, 32>::type , typename proto::result_of::child_c<TryCatch, 33>::type , typename proto::result_of::child_c<TryCatch, 34>::type , typename proto::result_of::child_c<TryCatch,
 35>::type , typename proto::result_of::child_c<TryCatch, 36>::type , typename proto::result_of::child_c<TryCatch, 37>::type , typename proto::result_of::child_c<TryCatch, 38>::type , typename proto::result_of::child_c<TryCatch, 39>::type , typename proto::result_of::child_c<TryCatch, 40>::type , typename proto::result_of::child_c<TryCatch, 41>::type , typename proto::result_of::child_c<TryCatch, 42>::type , typename proto::result_of::child_c<TryCatch, 43>::type , typename proto::result_of::child_c<TryCatch, 44>::type , typename proto::result_of::child_c<TryCatch, 45>::type , typename proto::result_of::child_c<TryCatch, 46>::type , typename proto::result_of::child_c<TryCatch, 47>::type , typename proto::result_of::child_c<TryCatch, 48>::type , typename proto::result_of::child_c<TryCatch, 49>::type
               , catch_expr> gen_type;
             typedef typename gen_type::type type;
@@ -3380,7 +3380,7 @@
                     gen_type::make(
                         proto::child_c<0>(try_catch) , proto::child_c<1>(try_catch) , proto::child_c<2>(try_catch) , proto::child_c<3>(try_catch) , proto::child_c<4>(try_catch) , proto::child_c<5>(try_catch) , proto::child_c<6>(try_catch) , proto::child_c<7>(try_catch) , proto::child_c<8>(try_catch) , proto::child_c<9>(try_catch) , proto::child_c<10>(try_catch) , proto::child_c<11>(try_catch) , proto::child_c<12>(try_catch) , proto::child_c<13>(try_catch) , proto::child_c<14>(try_catch) , proto::child_c<15>(try_catch) , proto::child_c<16>(try_catch) , proto::child_c<17>(try_catch) , proto::child_c<18>(try_catch) , proto::child_c<19>(try_catch) , proto::child_c<20>(try_catch) , proto::child_c<21>(try_catch) , proto::child_c<22>(try_catch) , proto::child_c<23>(try_catch) , proto::child_c<24>(try_catch) , proto::child_c<25>(try_catch) , proto::child_c<26>(try_catch) , proto::child_c<27>(try_catch) , proto::child_c<28>(try_catch) , proto::child_c<29>(try_catch) , proto::child_c<30>(try_catch) , proto::child_c<3
1>(try_catch) , proto::child_c<32>(try_catch) , proto::child_c<33>(try_catch) , proto::child_c<34>(try_catch) , proto::child_c<35>(try_catch) , proto::child_c<36>(try_catch) , proto::child_c<37>(try_catch) , proto::child_c<38>(try_catch) , proto::child_c<39>(try_catch) , proto::child_c<40>(try_catch) , proto::child_c<41>(try_catch) , proto::child_c<42>(try_catch) , proto::child_c<43>(try_catch) , proto::child_c<44>(try_catch) , proto::child_c<45>(try_catch) , proto::child_c<46>(try_catch) , proto::child_c<47>(try_catch) , proto::child_c<48>(try_catch) , proto::child_c<49>(try_catch)
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/statement/switch.hpp
==============================================================================
--- trunk/boost/phoenix/statement/switch.hpp (original)
+++ trunk/boost/phoenix/statement/switch.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -54,7 +54,7 @@
                 proto::when<
                     proto::comma<
                         switch_case_is_nullary
- , proto::or_<rule::switch_default_case, rule::switch_case>
+ , proto::or_<phoenix::rule::switch_default_case, phoenix::rule::switch_case>
>
                   , mpl::and_<
                         switch_case_is_nullary(
@@ -68,7 +68,7 @@
>()
>
               , proto::when<
- proto::or_<rule::switch_default_case, rule::switch_case>
+ proto::or_<phoenix::rule::switch_default_case, phoenix::rule::switch_case>
                   , evaluator(proto::_child_c<0>, proto::_state)
>
>
@@ -76,15 +76,15 @@
 
         struct switch_case_grammar
             : proto::or_<
- proto::comma<switch_case_grammar, rule::switch_case>
- , proto::when<rule::switch_case, proto::_>
+ proto::comma<switch_case_grammar, phoenix::rule::switch_case>
+ , proto::when<phoenix::rule::switch_case, proto::_>
>
         {};
 
         struct switch_case_with_default_grammar
             : proto::or_<
- proto::comma<switch_case_grammar, rule::switch_default_case>
- , proto::when<rule::switch_default_case, proto::_>
+ proto::comma<switch_case_grammar, phoenix::rule::switch_default_case>
+ , proto::when<phoenix::rule::switch_default_case, proto::_>
>
         {};
 

Modified: trunk/boost/phoenix/statement/try_catch.hpp
==============================================================================
--- trunk/boost/phoenix/statement/try_catch.hpp (original)
+++ trunk/boost/phoenix/statement/try_catch.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -115,15 +115,15 @@
         struct try_catch_is_nullary
             : proto::or_<
                 proto::when<
- rule::catch_all
+ phoenix::rule::catch_all
                   , evaluator(proto::_child_c<0>, proto::_data, proto::make<int()>)
>
               , proto::when<
- rule::catch_
+ phoenix::rule::catch_
                   , evaluator(proto::_child_c<1>, proto::_data, proto::make<int()>)
>
               , proto::when<
- rule::try_catch
+ phoenix::rule::try_catch
                   , mpl::and_<
                         evaluator(proto::_child_c<0>, proto::_data, proto::make<int()>)
                       , proto::fold<
@@ -158,7 +158,7 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                   , default_domain_with_basic_expr
                   , catch_exception<Exception>
                   , Expr
@@ -166,7 +166,7 @@
                 catch_expr;
             
             typedef
- expression::try_catch<
+ phoenix::expression::try_catch<
                     TryCatch
                   , catch_expr
>
@@ -179,7 +179,7 @@
                     gen_type::make(
                         try_catch
                       , proto::make_expr<
- tag::catch_
+ phoenix::tag::catch_
                           , default_domain_with_basic_expr
>(catch_exception<Exception>(), catch_)
                     );
@@ -198,14 +198,14 @@
         {
             typedef
                 typename proto::result_of::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                   , default_domain_with_basic_expr
                   , Expr
>::type
                 catch_expr;
             
             typedef
- expression::try_catch<
+ phoenix::expression::try_catch<
                     TryCatch
                   , catch_expr
>
@@ -218,7 +218,7 @@
                     gen_type::make(
                         try_catch
                       , proto::make_expr<
- tag::catch_all
+ phoenix::tag::catch_all
                           , default_domain_with_basic_expr
>(catch_)
                     );

Modified: trunk/boost/phoenix/stl/algorithm/iteration.hpp
==============================================================================
--- trunk/boost/phoenix/stl/algorithm/iteration.hpp (original)
+++ trunk/boost/phoenix/stl/algorithm/iteration.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -17,7 +17,7 @@
 #include <boost/phoenix/stl/algorithm/detail/begin.hpp>
 #include <boost/phoenix/stl/algorithm/detail/end.hpp>
 
-#include <boost/phoenix/function/adapt_function.hpp>
+#include <boost/phoenix/function/adapt_callable.hpp>
 
 namespace boost { namespace phoenix {
     namespace impl
@@ -39,7 +39,7 @@
             };
 
             template<class R, class F>
- F operator()(R& r, F fn) const
+ F const & operator()(R& r, F const& fn) const
             {
                 return std::for_each(detail::begin_(r), detail::end_(r), fn);
             }
@@ -88,9 +88,9 @@
         };
     }
 
- BOOST_PHOENIX_ADAPT_FUNCTION(for_each, impl::for_each, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(accumulate, impl::accumulate, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(accumulate, impl::accumulate, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(for_each, impl::for_each, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(accumulate, impl::accumulate, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(accumulate, impl::accumulate, 3)
 
 }}
 

Modified: trunk/boost/phoenix/stl/algorithm/querying.hpp
==============================================================================
--- trunk/boost/phoenix/stl/algorithm/querying.hpp (original)
+++ trunk/boost/phoenix/stl/algorithm/querying.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -23,7 +23,7 @@
 #include <boost/phoenix/stl/algorithm/detail/end.hpp>
 #include <boost/phoenix/stl/algorithm/detail/decay_array.hpp>
 
-#include <boost/phoenix/function/adapt_function.hpp>
+#include <boost/phoenix/function/adapt_callable.hpp>
 
 #include <boost/range/result_iterator.hpp>
 #include <boost/range/difference_type.hpp>
@@ -618,39 +618,39 @@
 
     }
 
- BOOST_PHOENIX_ADAPT_FUNCTION(find, impl::find, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(find_if, impl::find_if, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(find_end, impl::find_end, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(find_end, impl::find_end, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(find_first_of, impl::find_first_of, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(find_first_of, impl::find_first_of, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(adjacent_find, impl::adjacent_find, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(adjacent_find, impl::adjacent_find, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(count, impl::count, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(count_if, impl::count_if, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(distance, impl::distance, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(equal, impl::equal, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(equal, impl::equal, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(search, impl::search, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(search, impl::search, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(lower_bound, impl::lower_bound, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(lower_bound, impl::lower_bound, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(upper_bound, impl::upper_bound, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(upper_bound, impl::upper_bound, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(equal_range, impl::equal_range, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(equal_range, impl::equal_range, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(mismatch, impl::mismatch, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(mismatch, impl::mismatch, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(binary_search, impl::binary_search, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(binary_search, impl::binary_search, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(includes, impl::includes, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(includes, impl::includes, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(min_element, impl::min_element, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(min_element, impl::min_element, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(max_element, impl::max_element, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(max_element, impl::max_element, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(lexicographical_compare, impl::lexicographical_compare, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(lexicographical_compare, impl::lexicographical_compare, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(find, impl::find, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(find_if, impl::find_if, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(find_end, impl::find_end, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(find_end, impl::find_end, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(find_first_of, impl::find_first_of, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(find_first_of, impl::find_first_of, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(adjacent_find, impl::adjacent_find, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(adjacent_find, impl::adjacent_find, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(count, impl::count, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(count_if, impl::count_if, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(distance, impl::distance, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(equal, impl::equal, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(equal, impl::equal, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(search, impl::search, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(search, impl::search, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(lower_bound, impl::lower_bound, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(lower_bound, impl::lower_bound, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(upper_bound, impl::upper_bound, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(upper_bound, impl::upper_bound, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(equal_range, impl::equal_range, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(equal_range, impl::equal_range, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(mismatch, impl::mismatch, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(mismatch, impl::mismatch, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(binary_search, impl::binary_search, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(binary_search, impl::binary_search, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(includes, impl::includes, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(includes, impl::includes, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(min_element, impl::min_element, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(min_element, impl::min_element, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(max_element, impl::max_element, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(max_element, impl::max_element, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(lexicographical_compare, impl::lexicographical_compare, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(lexicographical_compare, impl::lexicographical_compare, 3)
 
 }}
 

Modified: trunk/boost/phoenix/stl/algorithm/transformation.hpp
==============================================================================
--- trunk/boost/phoenix/stl/algorithm/transformation.hpp (original)
+++ trunk/boost/phoenix/stl/algorithm/transformation.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -26,7 +26,7 @@
 #include <boost/phoenix/stl/algorithm/detail/end.hpp>
 #include <boost/phoenix/stl/algorithm/detail/decay_array.hpp>
 
-#include <boost/phoenix/function/adapt_function.hpp>
+#include <boost/phoenix/function/adapt_callable.hpp>
 
 #include <boost/range/result_iterator.hpp>
 #include <boost/range/difference_type.hpp>
@@ -213,7 +213,7 @@
         typedef void result_type;
 
         template<class R, class G>
- void operator()(R& r, G g) const
+ void operator()(R& r, G const & g) const
         {
             std::generate(detail::begin_(r), detail::end_(r), g);
         }
@@ -1121,75 +1121,75 @@
 
 namespace boost { namespace phoenix
 {
- BOOST_PHOENIX_ADAPT_FUNCTION(swap, impl::swap, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(copy, impl::copy, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(copy_backward, impl::copy_backward, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(transform, impl::transform, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(transform, impl::transform, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(replace, impl::replace, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(replace_if, impl::replace_if, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(replace_copy, impl::replace_copy, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(replace_copy_if, impl::replace_copy_if, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(fill, impl::fill, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(fill_n, impl::fill_n, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(generate, impl::generate, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(generate_n, impl::generate_n, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(remove, impl::remove, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(remove_if, impl::remove_if, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(remove_copy, impl::remove_copy, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(remove_copy_if, impl::remove_copy_if, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(unique, impl::unique, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(unique, impl::unique, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(unique_copy, impl::unique_copy, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(unique_copy, impl::unique_copy, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(reverse, impl::reverse, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(reverse_copy, impl::reverse_copy, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(rotate, impl::rotate, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(rotate_copy, impl::rotate_copy, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(random_shuffle, impl::random_shuffle, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(random_shuffle, impl::random_shuffle, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(partition, impl::partition, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(stable_partition, impl::stable_partition, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(sort, impl::sort, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(sort, impl::sort, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(stable_sort, impl::stable_sort, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(stable_sort, impl::stable_sort, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(partial_sort, impl::partial_sort, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(partial_sort, impl::partial_sort, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(partial_sort_copy, impl::partial_sort_copy, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(partial_sort_copy, impl::partial_sort_copy, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(nth_element, impl::nth_element, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(nth_element, impl::nth_element, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(merge, impl::merge, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(merge, impl::merge, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(inplace_merge, impl::inplace_merge, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(inplace_merge, impl::inplace_merge, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(next_permutation, impl::next_permutation, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(next_permutation, impl::next_permutation, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(prev_permutation, impl::prev_permutation, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(prev_permutation, impl::prev_permutation, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(inner_product, impl::inner_product, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(inner_product, impl::inner_product, 5)
- BOOST_PHOENIX_ADAPT_FUNCTION(partial_sum, impl::partial_sum, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(partial_sum, impl::partial_sum, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(adjacent_difference, impl::adjacent_difference, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(adjacent_difference, impl::adjacent_difference, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(push_heap, impl::push_heap, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(push_heap, impl::push_heap, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(pop_heap, impl::pop_heap, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(pop_heap, impl::pop_heap, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(make_heap, impl::make_heap, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(make_heap, impl::make_heap, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(sort_heap, impl::sort_heap, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(sort_heap, impl::sort_heap, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_union, impl::set_union, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_union, impl::set_union, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_intersection, impl::set_intersection, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_intersection, impl::set_intersection, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_difference, impl::set_difference, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_difference, impl::set_difference, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_symmetric_difference, impl::set_symmetric_difference, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(set_symmetric_difference, impl::set_symmetric_difference, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(swap, impl::swap, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(copy, impl::copy, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(copy_backward, impl::copy_backward, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(transform, impl::transform, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(transform, impl::transform, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(replace, impl::replace, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(replace_if, impl::replace_if, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(replace_copy, impl::replace_copy, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(replace_copy_if, impl::replace_copy_if, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(fill, impl::fill, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(fill_n, impl::fill_n, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(generate, impl::generate, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(generate_n, impl::generate_n, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(remove, impl::remove, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(remove_if, impl::remove_if, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(remove_copy, impl::remove_copy, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(remove_copy_if, impl::remove_copy_if, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(unique, impl::unique, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(unique, impl::unique, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(unique_copy, impl::unique_copy, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(unique_copy, impl::unique_copy, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(reverse, impl::reverse, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(reverse_copy, impl::reverse_copy, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(rotate, impl::rotate, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(rotate_copy, impl::rotate_copy, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(random_shuffle, impl::random_shuffle, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(random_shuffle, impl::random_shuffle, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partition, impl::partition, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(stable_partition, impl::stable_partition, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(sort, impl::sort, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(sort, impl::sort, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(stable_sort, impl::stable_sort, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(stable_sort, impl::stable_sort, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partial_sort, impl::partial_sort, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partial_sort, impl::partial_sort, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partial_sort_copy, impl::partial_sort_copy, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partial_sort_copy, impl::partial_sort_copy, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(nth_element, impl::nth_element, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(nth_element, impl::nth_element, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(merge, impl::merge, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(merge, impl::merge, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(inplace_merge, impl::inplace_merge, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(inplace_merge, impl::inplace_merge, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(next_permutation, impl::next_permutation, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(next_permutation, impl::next_permutation, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(prev_permutation, impl::prev_permutation, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(prev_permutation, impl::prev_permutation, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(inner_product, impl::inner_product, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(inner_product, impl::inner_product, 5)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partial_sum, impl::partial_sum, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(partial_sum, impl::partial_sum, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(adjacent_difference, impl::adjacent_difference, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(adjacent_difference, impl::adjacent_difference, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(push_heap, impl::push_heap, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(push_heap, impl::push_heap, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(pop_heap, impl::pop_heap, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(pop_heap, impl::pop_heap, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(make_heap, impl::make_heap, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(make_heap, impl::make_heap, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(sort_heap, impl::sort_heap, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(sort_heap, impl::sort_heap, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_union, impl::set_union, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_union, impl::set_union, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_intersection, impl::set_intersection, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_intersection, impl::set_intersection, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_difference, impl::set_difference, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_difference, impl::set_difference, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_symmetric_difference, impl::set_symmetric_difference, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(set_symmetric_difference, impl::set_symmetric_difference, 4)
 }}
 
 #endif

Copied: trunk/boost/phoenix/stl/cmath.hpp (from r71194, /trunk/boost/phoenix/stdlib/cmath.hpp)
==============================================================================
--- /trunk/boost/phoenix/stdlib/cmath.hpp (original)
+++ trunk/boost/phoenix/stl/cmath.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -10,7 +10,7 @@
 
 #include <boost/phoenix/core/limits.hpp>
 #include <cmath>
-#include <boost/phoenix/function/adapt_function.hpp>
+#include <boost/phoenix/function/adapt_callable.hpp>
 #include <boost/type_traits/remove_reference.hpp>
 #include <boost/type_traits/remove_cv.hpp>
 
@@ -36,7 +36,7 @@
     }; \
     } \
     namespace phoenix { \
- BOOST_PHOENIX_ADAPT_FUNCTION(name, phoenix_impl::name ## _impl, 1) \
+ BOOST_PHOENIX_ADAPT_CALLABLE(name, phoenix_impl::name ## _impl, 1) \
     }
 
 BOOST_PHOENIX_MATH_FUNCTION(acos, 1)

Modified: trunk/boost/phoenix/stl/container/container.hpp
==============================================================================
--- trunk/boost/phoenix/stl/container/container.hpp (original)
+++ trunk/boost/phoenix/stl/container/container.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,7 +14,7 @@
 #include <boost/mpl/or.hpp>
 #include <boost/mpl/void.hpp>
 #include <boost/phoenix/stl/container/detail/container.hpp>
-#include <boost/phoenix/function/adapt_function.hpp>
+#include <boost/phoenix/function/adapt_callable.hpp>
 #include <boost/type_traits/is_const.hpp>
 
 namespace boost { namespace phoenix
@@ -294,11 +294,11 @@
                 // returning a value. Oh well... :*
 
                 typedef
- boost::mpl::eval_if<
+ boost::mpl::eval_if_c<
                         boost::is_same<
                             typename remove_reference<Arg1>::type
                           , typename iterator_of<C>::type
- >
+ >::value
 #if defined(BOOST_MSVC)// && (BOOST_MSVC <= 1500)
                       , iterator_of<C>
 #else
@@ -309,8 +309,8 @@
                 map_erase_result;
 
                 typedef typename
- boost::mpl::eval_if<
- has_mapped_type<C>
+ boost::mpl::eval_if_c<
+ has_mapped_type<C>::value
                       , map_erase_result
                       , iterator_of<C>
>::type
@@ -425,10 +425,11 @@
                 choice_1;
 
                 typedef
- boost::mpl::eval_if<
+ boost::mpl::eval_if_c<
                         boost::mpl::and_<
                             boost::is_same<Arg3, mpl::void_>
- , boost::mpl::not_<boost::is_same<Arg1, Arg2> > >
+ , boost::mpl::not_<boost::is_same<Arg1, Arg2> >
+ >::value
                       , iterator_of<C>
                       , boost::mpl::identity<void>
>
@@ -437,8 +438,8 @@
             public:
 
                 typedef typename
- boost::mpl::eval_if<
- boost::is_same<Arg2, mpl::void_>
+ boost::mpl::eval_if_c<
+ boost::is_same<Arg2, mpl::void_>::value
                       , choice_1
                       , choice_2
>::type
@@ -478,7 +479,7 @@
               , typename C
               , typename Arg1
>
- struct result<This(C&, Arg1)>
+ struct result<This(C &, Arg1)>
                 : result_of::insert<C, Arg1>
             {};
             
@@ -488,7 +489,7 @@
               , typename Arg1
               , typename Arg2
>
- struct result<This(C&, Arg1, Arg2)>
+ struct result<This(C &, Arg1, Arg2)>
                 : result_of::insert<C, Arg1, Arg2>
             {};
             
@@ -499,7 +500,7 @@
               , typename Arg2
               , typename Arg3
>
- struct result<This(C&, Arg1, Arg2, Arg3)>
+ struct result<This(C &, Arg1, Arg2, Arg3)>
                 : result_of::insert<C, Arg1, Arg2, Arg3>
             {};
 
@@ -785,40 +786,40 @@
     // The lazy functions themselves.
     //
     ///////////////////////////////////////////////////////////////////////////////
- BOOST_PHOENIX_ADAPT_FUNCTION(assign, boost::phoenix::stl::assign, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(assign, boost::phoenix::stl::assign, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(assign, boost::phoenix::stl::assign, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(at, stl::at, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(back, stl::back, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(begin, stl::begin, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(capacity, stl::capacity, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(clear, stl::clear, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(empty, stl::empty, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(end, stl::end, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(erase, stl::erase, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(erase, stl::erase, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(front, stl::front, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(get_allocator, stl::get_allocator, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(insert, stl::insert, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(insert, stl::insert, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(insert, stl::insert, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(key_comp, stl::key_comp, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(max_size, stl::max_size, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(pop_back, stl::pop_back, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(pop_front, stl::pop_front, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(push_back, stl::push_back, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(push_front, stl::push_front, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(rbegin, stl::rbegin, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(rend, stl::rend, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(reserve, stl::reserve, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(resize, stl::resize, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(resize, stl::resize, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(size, stl::size, 1)
- BOOST_PHOENIX_ADAPT_FUNCTION(splice, stl::splice, 2)
- BOOST_PHOENIX_ADAPT_FUNCTION(splice, stl::splice, 3)
- BOOST_PHOENIX_ADAPT_FUNCTION(splice, stl::splice, 4)
- BOOST_PHOENIX_ADAPT_FUNCTION(splice, stl::splice, 5)
- BOOST_PHOENIX_ADAPT_FUNCTION(value_comp, stl::value_comp, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(at, stl::at, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(back, stl::back, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(begin, stl::begin, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(capacity, stl::capacity, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(clear, stl::clear, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(empty, stl::empty, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(end, stl::end, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(front, stl::front, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(get_allocator, stl::get_allocator, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(key_comp, stl::key_comp, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(max_size, stl::max_size, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(pop_back, stl::pop_back, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(pop_front, stl::pop_front, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(push_back, stl::push_back, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(push_front, stl::push_front, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(rbegin, stl::rbegin, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(rend, stl::rend, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(reserve, stl::reserve, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(size, stl::size, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 5)
+ BOOST_PHOENIX_ADAPT_CALLABLE(value_comp, stl::value_comp, 1)
 
 }} // namespace boost::phoenix
 

Modified: trunk/boost/phoenix/stl/container/detail/container.hpp
==============================================================================
--- trunk/boost/phoenix/stl/container/detail/container.hpp (original)
+++ trunk/boost/phoenix/stl/container/detail/container.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -74,8 +74,8 @@
     struct const_qualified_reference_of
     {
         typedef typename
- boost::mpl::eval_if<
- boost::is_const<C>
+ boost::mpl::eval_if_c<
+ boost::is_const<C>::value
               , const_reference_of<C>
               , reference_of<C>
>::type
@@ -86,8 +86,8 @@
     struct const_qualified_iterator_of
     {
         typedef typename
- boost::mpl::eval_if<
- boost::is_const<C>
+ boost::mpl::eval_if_c<
+ boost::is_const<C>::value
               , const_iterator_of<C>
               , iterator_of<C>
>::type
@@ -98,8 +98,8 @@
     struct const_qualified_reverse_iterator_of
     {
         typedef typename
- boost::mpl::eval_if<
- boost::is_const<C>
+ boost::mpl::eval_if_c<
+ boost::is_const<C>::value
               , const_reverse_iterator_of<C>
               , reverse_iterator_of<C>
>::type

Modified: trunk/boost/spirit/home/support/meta_compiler.hpp
==============================================================================
--- trunk/boost/spirit/home/support/meta_compiler.hpp (original)
+++ trunk/boost/spirit/home/support/meta_compiler.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -13,6 +13,7 @@
 #endif
 
 #include <boost/config.hpp>
+#include <boost/spirit/include/phoenix_limits.hpp>
 #include <boost/detail/workaround.hpp>
 #include <boost/spirit/include/phoenix_limits.hpp> // needs to be included before proto
 #include <boost/proto/proto.hpp>

Modified: trunk/boost/spirit/home/support/terminal.hpp
==============================================================================
--- trunk/boost/spirit/home/support/terminal.hpp (original)
+++ trunk/boost/spirit/home/support/terminal.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -96,7 +96,7 @@
             proto::terminal<
                 lazy_terminal<
                     typename F::terminal_type
- , typename phoenix::expression::function<F, A0>::type
+ , typename phoenix::detail::expression::function_eval<F, A0>::type
                   , 1 // arity
>
>::type
@@ -108,7 +108,7 @@
         {
             typedef typename result_type::proto_child0 child_type;
             return result_type::make(child_type(
- phoenix::expression::function<F, A0>::make(f, _0)
+ phoenix::detail::expression::function_eval<F, A0>::make(f, _0)
               , f.proto_base().child0
             ));
         }
@@ -121,7 +121,7 @@
             proto::terminal<
                lazy_terminal<
                     typename F::terminal_type
- , typename phoenix::expression::function<F, A0, A1>::type
+ , typename phoenix::detail::expression::function_eval<F, A0, A1>::type
                   , 2 // arity
>
>::type
@@ -133,7 +133,7 @@
         {
             typedef typename result_type::proto_child0 child_type;
             return result_type::make(child_type(
- phoenix::expression::function<F, A0, A1>::make(f, _0, _1)
+ phoenix::detail::expression::function_eval<F, A0, A1>::make(f, _0, _1)
               , f.proto_base().child0
             ));
         }
@@ -146,7 +146,7 @@
             proto::terminal<
                lazy_terminal<
                     typename F::terminal_type
- , typename phoenix::expression::function<F, A0, A1, A2>::type
+ , typename phoenix::detail::expression::function_eval<F, A0, A1, A2>::type
                   , 3 // arity
>
>::type
@@ -158,7 +158,7 @@
         {
             typedef typename result_type::proto_child0 child_type;
             return result_type::make(child_type(
- phoenix::expression::function<F, A0, A1, A2>::make(f, _0, _1, _2)
+ phoenix::detail::expression::function_eval<F, A0, A1, A2>::make(f, _0, _1, _2)
               , f.proto_base().child0
             ));
         }

Modified: trunk/boost/spirit/home/support/terminal_expression.hpp
==============================================================================
--- trunk/boost/spirit/home/support/terminal_expression.hpp (original)
+++ trunk/boost/spirit/home/support/terminal_expression.hpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -11,17 +11,17 @@
 
 #ifndef BOOST_SPIRIT_USE_PHOENIX_V3
 
-namespace boost { namespace phoenix
+namespace boost { namespace phoenix { namespace detail
 {
     namespace expression
     {
         template <
             typename F, typename A0 = void, typename A1 = void
           , typename A2 = void, typename Dummy = void>
- struct function;
+ struct function_eval;
 
         template <typename F, typename A0>
- struct function<F, A0>
+ struct function_eval<F, A0>
         {
             typedef phoenix::actor<
                 typename phoenix::as_composite<
@@ -37,7 +37,7 @@
         };
         
         template <typename F, typename A0, typename A1>
- struct function<F, A0, A1>
+ struct function_eval<F, A0, A1>
         {
             typedef phoenix::actor<
                 typename phoenix::as_composite<
@@ -53,7 +53,7 @@
         };
 
         template <typename F, typename A0, typename A1, typename A2>
- struct function<F, A0, A1, A2>
+ struct function_eval<F, A0, A1, A2>
         {
             typedef phoenix::actor<
                 typename phoenix::as_composite<
@@ -68,7 +68,7 @@
             }
         };
     }
-}}
+}}}
 
 #endif // !BOOST_SPIRIT_USE_PHOENIX_V3
 

Modified: trunk/libs/phoenix/doc/Jamfile
==============================================================================
--- trunk/libs/phoenix/doc/Jamfile (original)
+++ trunk/libs/phoenix/doc/Jamfile 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -16,11 +16,11 @@
         phoenix3.qbk
     :
         <xsl:param>boost.root=../../../..
- <xsl:param>chunk.section.depth=4
+ <xsl:param>chunk.section.depth=3
         <xsl:param>chunk.first.sections=1
- <xsl:param>toc.section.depth=4
- <xsl:param>toc.max.depth=4
- <xsl:param>generate.section.toc.level=4
+ <xsl:param>toc.section.depth=3
+ <xsl:param>toc.max.depth=3
+ <xsl:param>generate.section.toc.level=3
         <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/phoenix/doc/html
         <format>pdf:<xsl:param>img.src.path=$(images)/
     ;

Modified: trunk/libs/phoenix/doc/html/index.html
==============================================================================
--- trunk/libs/phoenix/doc/html/index.html (original)
+++ trunk/libs/phoenix/doc/html/index.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,7 +5,7 @@
 <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
-<link rel="next" href="phoenix/introduction.html" title="Introduction">
+<link rel="next" href="phoenix/what_s_new.html" title="What's New">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -17,7 +17,7 @@
 <td align="center">More</td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="phoenix/introduction.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="phoenix/what_s_new.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
 <div class="chapter">
 <div class="titlepage"><div>
 <div><h2 class="title">
@@ -33,7 +33,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller</p></div>
 <div><div class="legalnotice">
-<a name="id624774"></a><p>
+<a name="id743217"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -42,6 +42,8 @@
 <div class="toc">
 <p><b>Table of Contents</b></p>
 <dl>
+<dt><span class="section">What's New</span></dt>
+<dd><dl><dt><span class="section">Phoenix 3.0</span></dt></dl></dd>
 <dt><span class="section">Introduction</span></dt>
 <dt><span class="section">Starter Kit</span></dt>
 <dd><dl>
@@ -68,6 +70,8 @@
 <dt><span class="section">Nothing</span></dt>
 </dl></dd>
 <dt><span class="section">Function</span></dt>
+<dd><dl><dt><span class="section"><a href="phoenix/modules/function/adapting_functions.html">Adapting
+ Functions</a></span></dt></dl></dd>
 <dt><span class="section">Operator</span></dt>
 <dt><span class="section">Statement</span></dt>
 <dd><dl>
@@ -99,6 +103,8 @@
 </dl></dd>
 <dt><span class="section">Bind</span></dt>
 <dd><dl>
+<dt><span class="section"><a href="phoenix/modules/bind/binding_function_objects.html">Binding
+ Function Objects</a></span></dt>
 <dt><span class="section">Binding Functions</span></dt>
 <dt><span class="section"><a href="phoenix/modules/bind/binding_member_functions.html">Binding
         Member Functions</a></span></dt>
@@ -117,12 +123,8 @@
 <dd><dl>
 <dt><span class="section">Actors in Detail</span></dt>
 <dt><span class="section">Phoenix Expressions</span></dt>
-<dd><dl>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span></dt>
-</dl></dd>
+<dd><dl><dt><span class="section"><a href="phoenix/inside/expression/boilerplate_macros.html">Boilerplate
+ Macros</a></span></dt></dl></dd>
 <dt><span class="section">More on Actions</span></dt>
 <dt><span class="section">Predefined Expressions and Rules</span></dt>
 <dt><span class="section">Custom Terminals</span></dt>
@@ -141,7 +143,7 @@
 </dl>
 </div>
 <a name="phoenix.preface"></a><h2>
-<a name="id655465"></a>
+<a name="id773908"></a>
     <a class="link" href="index.html#phoenix.preface">Preface</a>
   </h2>
 <div class="blockquote"><blockquote class="blockquote"><p>
@@ -160,7 +162,7 @@
     <span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
   </p>
 <a name="phoenix.description"></a><h3>
-<a name="id623578"></a>
+<a name="id742020"></a>
     <a class="link" href="index.html#phoenix.description">Description</a>
   </h3>
 <p>
@@ -178,7 +180,7 @@
     library is organized in highly independent modules and layers.
   </p>
 <a name="phoenix.how_to_use_this_manual"></a><h3>
-<a name="id623625"></a>
+<a name="id742068"></a>
     <a class="link" href="index.html#phoenix.how_to_use_this_manual">How to use this manual</a>
   </h3>
 <p>
@@ -200,7 +202,7 @@
     icons precede some text to indicate:
   </p>
 <div class="table">
-<a name="id623656"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
+<a name="id742099"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
 <div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -289,15 +291,15 @@
   </p>
 </div>
 <a name="phoenix._emphasis_role__bold___emphasis____to_joel_s_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
-<a name="id664422"></a>
+<a name="id782864"></a>
     <a class="link" href="index.html#phoenix._emphasis_role__bold___emphasis____to_joel_s_dear_daughter__phoenix__emphasis___emphasis_"><span class="bold"><strong><span class="emphasis"><em>...To Joel's dear daughter, Phoenix</em></span></strong></span></a>
   </h3>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: March 21, 2011 at 10:12:42 GMT</small></p></td>
+<td align="left"><p><small>Last revised: April 13, 2011 at 19:05:27 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="phoenix/introduction.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="phoenix/what_s_new.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
 </body>
 </html>

Modified: trunk/libs/phoenix/doc/html/phoenix-doc_HTML.manifest
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix-doc_HTML.manifest (original)
+++ trunk/libs/phoenix/doc/html/phoenix-doc_HTML.manifest 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -1,4 +1,6 @@
 index.html
+phoenix/what_s_new.html
+phoenix/what_s_new/phoenix_3_0.html
 phoenix/introduction.html
 phoenix/starter_kit.html
 phoenix/starter_kit/values.html
@@ -19,6 +21,7 @@
 phoenix/modules/core/arguments.html
 phoenix/modules/core/nothing.html
 phoenix/modules/function.html
+phoenix/modules/function/adapting_functions.html
 phoenix/modules/operator.html
 phoenix/modules/statement.html
 phoenix/modules/statement/block_statement.html
@@ -40,6 +43,7 @@
 phoenix/modules/scope/let.html
 phoenix/modules/scope/lambda.html
 phoenix/modules/bind.html
+phoenix/modules/bind/binding_function_objects.html
 phoenix/modules/bind/binding_functions.html
 phoenix/modules/bind/binding_member_functions.html
 phoenix/modules/bind/binding_member_variables.html
@@ -50,10 +54,7 @@
 phoenix/inside.html
 phoenix/inside/actor.html
 phoenix/inside/expression.html
-phoenix/inside/expression/boost_phoenix_define_expression.html
-phoenix/inside/expression/boost_phoenix_define_expression_vararg.html
-phoenix/inside/expression/boost_phoenix_define_expression_ext.html
-phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html
+phoenix/inside/expression/boilerplate_macros.html
 phoenix/inside/actions.html
 phoenix/inside/rules.html
 phoenix/inside/custom_terminals.html

Modified: trunk/libs/phoenix/doc/html/phoenix/basics.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/basics.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/basics.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -49,7 +49,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.partial_function_application"></a><h4>
-<a name="id667811"></a>
+<a name="id786417"></a>
       <a class="link" href="basics.html#phoenix.basics.partial_function_application">Partial Function
       Application</a>
     </h4>
@@ -101,7 +101,7 @@
       black boxes anymore.
     </p>
 <a name="phoenix.basics.stl_and_higher_order_functions"></a><h4>
-<a name="id668026"></a>
+<a name="id786632"></a>
       <a class="link" href="basics.html#phoenix.basics.stl_and_higher_order_functions">STL and higher
       order functions</a>
     </h4>
@@ -133,7 +133,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.lazy_evaluation"></a><h4>
-<a name="id668237"></a>
+<a name="id786843"></a>
       <a class="link" href="basics.html#phoenix.basics.lazy_evaluation">Lazy Evaluation</a>
     </h4>
 <p>
@@ -188,7 +188,7 @@
 </span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="special">(</span><span class="identifier">arg1</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">1</span><span class="special">)(</span><span class="identifier">y</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// prints 0 or false
 </span></pre>
 <a name="phoenix.basics.forwarding_function_problem"></a><h4>
-<a name="id668780"></a>
+<a name="id787386"></a>
       <a class="link" href="basics.html#phoenix.basics.forwarding_function_problem">Forwarding Function
       Problem</a>
     </h4>
@@ -229,7 +229,7 @@
       </p></td></tr>
 </table></div>
 <a name="phoenix.basics.polymorphic_functions"></a><h4>
-<a name="id668918"></a>
+<a name="id787524"></a>
       <a class="link" href="basics.html#phoenix.basics.polymorphic_functions">Polymorphic Functions</a>
     </h4>
 <p>

Modified: trunk/libs/phoenix/doc/html/phoenix/examples/extending_actors.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/examples/extending_actors.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/examples/extending_actors.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -46,7 +46,7 @@
         on how to implement a custom actor which is usable as if it were a STL Container.
       </p>
 <a name="phoenix.examples.extending_actors.requirements"></a><h5>
-<a name="id717896"></a>
+<a name="id840295"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.requirements">Requirements</a>
       </h5>
 <p>
@@ -148,7 +148,7 @@
         Additionally, we want all the operator() overloads of the regular actor.
       </p>
 <a name="phoenix.examples.extending_actors.defining_the_actor"></a><h5>
-<a name="id718209"></a>
+<a name="id840608"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.defining_the_actor">Defining
         the actor</a>
       </h5>
@@ -181,7 +181,7 @@
 <span class="special">};</span>
 </pre>
 <a name="phoenix.examples.extending_actors.using_the_actor"></a><h5>
-<a name="id719093"></a>
+<a name="id841493"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.using_the_actor">Using the
         actor</a>
       </h5>
@@ -238,7 +238,7 @@
         Wow, that was easy!
       </p>
 <a name="phoenix.examples.extending_actors.adding_life_to_the_actor"></a><h5>
-<a name="id719761"></a>
+<a name="id842160"></a>
         <a class="link" href="extending_actors.html#phoenix.examples.extending_actors.adding_life_to_the_actor">Adding
         life to the actor</a>
       </h5>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -29,12 +29,8 @@
 <div class="toc"><dl>
 <dt><span class="section">Actors in Detail</span></dt>
 <dt><span class="section">Phoenix Expressions</span></dt>
-<dd><dl>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span></dt>
-</dl></dd>
+<dd><dl><dt><span class="section"><a href="inside/expression/boilerplate_macros.html">Boilerplate
+ Macros</a></span></dt></dl></dd>
 <dt><span class="section">More on Actions</span></dt>
 <dt><span class="section">Predefined Expressions and Rules</span></dt>
 <dt><span class="section">Custom Terminals</span></dt>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/actions.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/actions.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/actions.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../inside.html" title="Inside Phoenix">
-<link rel="prev" href="expression/boost_phoenix_define_expression_ext_vararg.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG">
+<link rel="prev" href="expression/boilerplate_macros.html" title="Boilerplate Macros">
 <link rel="next" href="rules.html" title="Predefined Expressions and Rules">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="expression/boost_phoenix_define_expression_ext_vararg.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rules.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="expression/boilerplate_macros.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rules.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
@@ -91,7 +91,7 @@
         how the Phoenix AST will be traversed.
       </p>
 <a name="phoenix.inside.actions.writing_an_action"></a><h5>
-<a name="id706992"></a>
+<a name="id829391"></a>
         <a class="link" href="actions.html#phoenix.inside.actions.writing_an_action">Writing an Action</a>
       </h5>
 <p>
@@ -210,7 +210,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="expression/boost_phoenix_define_expression_ext_vararg.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rules.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="expression/boilerplate_macros.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rules.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/actor.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/actor.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/actor.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.inside.actor"></a><a class="link" href="actor.html" title="Actors in Detail">Actors in Detail</a>
 </h3></div></div></div>
 <a name="phoenix.inside.actor.actor"></a><h5>
-<a name="id698455"></a>
+<a name="id820821"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.actor">Actor</a>
       </h5>
 <p>
@@ -77,7 +77,7 @@
 </span><span class="special">};</span>
 </pre>
 <div class="table">
-<a name="id698974"></a><p class="title"><b>Table&#160;1.9.&#160;Actor Concept Requirements</b></p>
+<a name="id821338"></a><p class="title"><b>Table&#160;1.9.&#160;Actor Concept Requirements</b></p>
 <div class="table-contents"><table class="table" summary="Actor Concept Requirements">
 <colgroup>
 <col>
@@ -143,7 +143,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="phoenix.inside.actor.function_call_operators"></a><h5>
-<a name="id699275"></a>
+<a name="id821640"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.function_call_operators">Function Call
         Operators</a>
       </h5>
@@ -176,7 +176,7 @@
 </td></tr>
 </table></div>
 <a name="phoenix.inside.actor.context"></a><h5>
-<a name="id699382"></a>
+<a name="id821747"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.context">Context</a>
       </h5>
 <p>
@@ -187,7 +187,7 @@
         all information necessary to evaluate the given expression.
       </p>
 <div class="table">
-<a name="id699426"></a><p class="title"><b>Table&#160;1.10.&#160;Context Concept Requirements</b></p>
+<a name="id821791"></a><p class="title"><b>Table&#160;1.10.&#160;Context Concept Requirements</b></p>
 <div class="table-contents"><table class="table" summary="Context Concept Requirements">
 <colgroup>
 <col>
@@ -285,7 +285,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="phoenix.inside.actor.environment"></a><h5>
-<a name="id699794"></a>
+<a name="id822159"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.environment">Environment</a>
       </h5>
 <p>
@@ -304,7 +304,7 @@
         such as local variables, etc.
       </p>
 <a name="phoenix.inside.actor.actions"></a><h5>
-<a name="id699859"></a>
+<a name="id822224"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.actions">Actions</a>
       </h5>
 <p>
@@ -343,7 +343,7 @@
         on actions</a>.
       </p>
 <a name="phoenix.inside.actor.evaluation"></a><h5>
-<a name="id700143"></a>
+<a name="id822507"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.evaluation">Evaluation</a>
       </h5>
 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">evaluator</span>
@@ -374,7 +374,7 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside.actor.result_of__actor"></a><h5>
-<a name="id700647"></a>
+<a name="id823014"></a>
         <a class="link" href="actor.html#phoenix.inside.actor.result_of__actor">result_of::actor</a>
       </h5>
 <p>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/expression.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/expression.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/expression.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../inside.html" title="Inside Phoenix">
 <link rel="prev" href="actor.html" title="Actors in Detail">
-<link rel="next" href="expression/boost_phoenix_define_expression.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION">
+<link rel="next" href="expression/boilerplate_macros.html" title="Boilerplate Macros">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,18 +20,14 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="actor.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expression/boost_phoenix_define_expression.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="actor.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expression/boilerplate_macros.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="phoenix.inside.expression"></a><a class="link" href="expression.html" title="Phoenix Expressions">Phoenix Expressions</a>
 </h3></div></div></div>
-<div class="toc"><dl>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span></dt>
-<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span></dt>
-</dl></div>
+<div class="toc"><dl><dt><span class="section"><a href="expression/boilerplate_macros.html">Boilerplate
+ Macros</a></span></dt></dl></div>
 <p>
         A Phoenix Expression is a model of the <a href="http://www.boost.org/doc/libs/release/doc/html/Expr.html" target="_top">Proto
         Expression</a> Concept. These expressions are wrapped inside an <a class="link" href="actor.html" title="Actors in Detail">Actor</a> template. The <code class="computeroutput"><span class="identifier">actor</span></code>
@@ -162,7 +158,7 @@
         </p></td></tr>
 </table></div>
 <a name="phoenix.inside.expression.meta_grammar"></a><h5>
-<a name="id702061"></a>
+<a name="id824426"></a>
         <a class="link" href="expression.html#phoenix.inside.expression.meta_grammar">meta_grammar</a>
       </h5>
 <p>
@@ -190,7 +186,7 @@
         you include this grammar gets extended by various expressions.
       </p>
 <a name="phoenix.inside.expression.example"></a><h5>
-<a name="id702291"></a>
+<a name="id824656"></a>
         <a class="link" href="expression.html#phoenix.inside.expression.example">Example</a>
       </h5>
 <p>
@@ -260,12 +256,6 @@
           <a class="link" href="actions.html" title="More on Actions">here</a>.
         </p></td></tr>
 </table></div>
-<p>
- When having more and more expressions, you start to realize that this is
- a very repetetive task. Phoenix provides boilerplate macros that make defining
- Phoenix Expressions as you have seen in the <a class="link" href="expression.html" title="Phoenix Expressions">previous
- section</a> look like a piece of cake.
- </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
@@ -277,7 +267,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="actor.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expression/boost_phoenix_define_expression.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="actor.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inside.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expression/boilerplate_macros.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: trunk/libs/phoenix/doc/html/phoenix/inside/expression/boilerplate_macros.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/expression/boilerplate_macros.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,441 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Boilerplate Macros</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../expression.html" title="Phoenix Expressions">
+<link rel="prev" href="../expression.html" title="Phoenix Expressions">
+<link rel="next" href="../actions.html" title="More on Actions">
+</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="../expression.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../expression.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../actions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.inside.expression.boilerplate_macros"></a><a class="link" href="boilerplate_macros.html" title="Boilerplate Macros">Boilerplate
+ Macros</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION</span></dt>
+<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span></dt>
+<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span></dt>
+<dt><span class="section">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span></dt>
+</dl></div>
+<p>
+ When having more and more expressions, you start to realize that this is
+ a very repetetive task. Phoenix provides boilerplate macros that make defining
+ Phoenix Expressions as you have seen in the <a class="link" href="../expression.html" title="Phoenix Expressions">previous
+ section</a> look like a piece of cake.
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression"></a><a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression" title="BOOST_PHOENIX_DEFINE_EXPRESSION">BOOST_PHOENIX_DEFINE_EXPRESSION</a>
+</h5></div></div></div>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.description"></a><h6>
+<a name="id825495"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to create Phoenix Expressions
+ </p>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.synopsis"></a><h6>
+<a name="id825530"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION</span><span class="special">(</span>
+ <span class="special">(</span><span class="identifier">namespace_seq</span><span class="special">)(</span><span class="identifier">name</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">child_grammar0</span><span class="special">)</span>
+ <span class="special">(</span><span class="identifier">child_grammar1</span><span class="special">)</span>
+ <span class="special">...</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.semantics"></a><h6>
+<a name="id825636"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates the necessary code for an expression <code class="computeroutput"><span class="identifier">name</span></code> in namespace <code class="computeroutput"><span class="identifier">namespace_seq</span></code>.
+ The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">child_grammarN</span><span class="special">)</span></code> declares how many children the expression
+ will have and what <code class="computeroutput"><span class="identifier">proto</span><span class="special">::</span><span class="identifier">grammar</span></code>
+ they match.
+ </p>
+<p>
+ The macro should be used at global scope. <code class="computeroutput"><span class="identifier">namespace_seq</span></code>
+ shall be the sequence of namespaces under which the following symbols
+ will be defined:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">tag</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">expression</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span> <span class="special">...</span> <span class="keyword">typename</span> <span class="identifier">AN</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">name</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">expr</span><span class="special">&lt;</span>
+ <span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span>
+ <span class="special">,</span> <span class="identifier">A0</span>
+ <span class="special">,</span> <span class="identifier">A1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">AN</span>
+ <span class="special">&gt;</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">rule</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</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">expr</span><span class="special">&lt;</span>
+ <span class="identifier">child_grammar0</span>
+ <span class="special">,</span> <span class="identifier">child_grammar1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">child_grammarN</span>
+ <span class="special">&gt;</span>
+ <span class="special">{};</span>
+<span class="special">}</span>
+</pre>
+<p>
+ This macros also adds a specialization for <code class="computeroutput"><span class="identifier">meta_grammar</span><span class="special">::</span><span class="identifier">case_</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;</span></code>.
+ </p>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.header"></a><h6>
+<a name="id826124"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.example"></a><h6>
+<a name="id826207"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression.example">Example</a>
+ </h6>
+<p>
+ The example from the previous section can be rewritten as:
+ </p>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION</span><span class="special">(</span>
+ <span class="special">(</span><span class="identifier">plus</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Lhs
+</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Rhs
+</span><span class="special">)</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <span class="identifier">plus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">&gt;::</span><span class="identifier">type</span>
+<span class="identifier">plus</span><span class="special">(</span><span class="identifier">Lhs</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">Rhs</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">expression</span><span class="special">::</span><span class="identifier">plus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">&gt;::</span><span class="identifier">make</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">rhs</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg"></a><a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg" title="BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</a>
+</h5></div></div></div>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.description"></a><h6>
+<a name="id826558"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to create Phoenix Expressions
+ </p>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.synopsis"></a><h6>
+<a name="id826594"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span><span class="special">(</span>
+ <span class="special">(</span><span class="identifier">namespace_seq</span><span class="special">)(</span><span class="identifier">name</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">child_grammar0</span><span class="special">)</span>
+ <span class="special">(</span><span class="identifier">child_grammar1</span><span class="special">)</span>
+ <span class="special">...</span>
+ <span class="special">(</span><span class="identifier">child_grammarN</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">N</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.semantics"></a><h6>
+<a name="id826725"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates the necessary code for an expression <code class="computeroutput"><span class="identifier">name</span></code> in namespace <code class="computeroutput"><span class="identifier">namespace_seq</span></code>.
+ <code class="computeroutput"><span class="identifier">N</span></code> is the maximum number
+ of variable children. All but the last elements in the grammar sequence
+ are required children of the expression, and the last denotes a variable
+ number of children. The number of children an expression of this kind
+ can hold is therefor <code class="computeroutput"><span class="identifier">N</span><span class="special">-</span><span class="number">1</span></code> plus
+ the size of the sequence
+ </p>
+<p>
+ The macro should be used at global scope. <code class="computeroutput"><span class="identifier">namespace_seq</span></code>
+ shall be the sequence of namespaces under which the following symbols
+ will be defined:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">tag</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">expression</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span> <span class="special">...</span> <span class="keyword">typename</span> <span class="identifier">AN</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">name</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">expr</span><span class="special">&lt;</span>
+ <span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span>
+ <span class="special">,</span> <span class="identifier">A0</span>
+ <span class="special">,</span> <span class="identifier">A1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">AN</span>
+ <span class="special">&gt;</span>
+ <span class="special">{};</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">rule</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</span>
+ <span class="special">:</span> <span class="identifier">expression</span><span class="special">::</span><span class="identifier">name</span><span class="special">&lt;</span>
+ <span class="identifier">child_grammar0</span>
+ <span class="special">,</span> <span class="identifier">child_grammar1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">proto</span><span class="special">::</span><span class="identifier">vararg</span><span class="special">&lt;</span><span class="identifier">child_grammarN</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">{};</span>
+<span class="special">}</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.header"></a><h6>
+<a name="id827178"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.example"></a><h6>
+<a name="id827262"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_vararg.example">Example</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span><span class="special">(</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">mem_fun_ptr</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Pointer to Object
+</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Member pointer
+</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Variable number of arguments
+</span> <span class="special">,</span> <span class="identifier">BOOST_PHOENIX_LIMIT</span>
+<span class="special">)</span>
+</pre>
+<p>
+ This defines the member function pointer operator expression as described
+ in <a class="link" href="../../modules/operator.html" title="Operator">operators</a>.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext"></a><a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</a>
+</h5></div></div></div>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.description"></a><h6>
+<a name="id827442"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to create Phoenix Expressions
+ </p>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.synopsis"></a><h6>
+<a name="id827478"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span><span class="special">(</span>
+ <span class="identifier">actor</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">namespace_seq</span><span class="special">)(</span><span class="identifier">name</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">child_grammar0</span><span class="special">)</span>
+ <span class="special">(</span><span class="identifier">child_grammar1</span><span class="special">)</span>
+ <span class="special">...</span>
+ <span class="special">(</span><span class="identifier">child_grammarN</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">N</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.semantics"></a><h6>
+<a name="id827621"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates the necessary code for an expression <code class="computeroutput"><span class="identifier">name</span></code> in namespace <code class="computeroutput"><span class="identifier">namespace_seq</span></code>.
+ The sequence of <code class="computeroutput"><span class="special">(</span><span class="identifier">child_grammarN</span><span class="special">)</span></code> declares how many children the expression
+ will have and what <code class="computeroutput"><span class="identifier">proto</span><span class="special">::</span><span class="identifier">grammar</span></code>
+ they match.
+ </p>
+<p>
+ The macro should be used at global scope. <code class="computeroutput"><span class="identifier">namespace_seq</span></code>
+ shall be the sequence of namespaces under which the following symbols
+ will be defined:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">tag</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">expression</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span> <span class="special">...</span> <span class="keyword">typename</span> <span class="identifier">AN</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">name</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">expr_ext</span><span class="special">&lt;</span>
+ <span class="identifier">actor</span>
+ <span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span>
+ <span class="special">,</span> <span class="identifier">A0</span>
+ <span class="special">,</span> <span class="identifier">A1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">AN</span>
+ <span class="special">&gt;</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">rule</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</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">expr</span><span class="special">&lt;</span>
+ <span class="identifier">child_grammar0</span>
+ <span class="special">,</span> <span class="identifier">child_grammar1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">child_grammarN</span>
+ <span class="special">&gt;</span>
+ <span class="special">{};</span>
+<span class="special">}</span>
+</pre>
+<p>
+ This macros also adds a specialization for <code class="computeroutput"><span class="identifier">meta_grammar</span><span class="special">::</span><span class="identifier">case_</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;</span></code>.
+ </p>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.header"></a><h6>
+<a name="id828120"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.example"></a><h6>
+<a name="id828204"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext.example">Example</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span><span class="special">(</span>
+ <span class="identifier">if_actor</span>
+ <span class="special">,</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">if_</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Cond
+</span> <span class="special">(</span><span class="identifier">meta_grammar</span><span class="special">)</span> <span class="comment">// Then
+</span><span class="special">)</span>
+</pre>
+<p>
+ This defines the if_ expression. The custom actor defines the <code class="computeroutput"><span class="identifier">else_</span></code>.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg"></a><a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</a>
+</h5></div></div></div>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.description"></a><h6>
+<a name="id828367"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to create Phoenix Expressions
+ </p>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.synopsis"></a><h6>
+<a name="id828403"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span><span class="special">(</span>
+ <span class="identifier">actor</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">namespace_seq</span><span class="special">)(</span><span class="identifier">name</span><span class="special">)</span>
+ <span class="special">,</span> <span class="special">(</span><span class="identifier">child_grammar0</span><span class="special">)</span>
+ <span class="special">(</span><span class="identifier">child_grammar1</span><span class="special">)</span>
+ <span class="special">...</span>
+ <span class="special">(</span><span class="identifier">child_grammarN</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">N</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.semantics"></a><h6>
+<a name="id828547"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates the necessary code for an expression <code class="computeroutput"><span class="identifier">name</span></code> in namespace <code class="computeroutput"><span class="identifier">namespace_seq</span></code>.
+ <code class="computeroutput"><span class="identifier">N</span></code> is the maximum number
+ of variable children. All but the last elements in the grammar sequence
+ are required children of the expression, and the last denotes a variable
+ number of children. The number of children an expression of this kind
+ can hold is therefor <code class="computeroutput"><span class="identifier">N</span><span class="special">-</span><span class="number">1</span></code> plus
+ the size of the sequence
+ </p>
+<p>
+ The macro should be used at global scope. <code class="computeroutput"><span class="identifier">namespace_seq</span></code>
+ shall be the sequence of namespaces under which the following symbols
+ will be defined:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">tag</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">expression</span>
+<span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span> <span class="special">...</span> <span class="keyword">typename</span> <span class="identifier">AN</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">name</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">expr_ext</span><span class="special">&lt;</span>
+ <span class="identifier">actor</span>
+ <span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span>
+ <span class="special">,</span> <span class="identifier">A0</span>
+ <span class="special">,</span> <span class="identifier">A1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">AN</span>
+ <span class="special">&gt;</span>
+ <span class="special">{};</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">rule</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">name</span>
+ <span class="special">:</span> <span class="identifier">expression</span><span class="special">::</span><span class="identifier">name</span><span class="special">&lt;</span>
+ <span class="identifier">child_grammar0</span>
+ <span class="special">,</span> <span class="identifier">child_grammar1</span>
+ <span class="special">...</span>
+ <span class="special">,</span> <span class="identifier">proto</span><span class="special">::</span><span class="identifier">vararg</span><span class="special">&lt;</span><span class="identifier">child_grammarN</span><span class="special">&gt;</span>
+ <span class="special">&gt;</span>
+ <span class="special">{};</span>
+<span class="special">}</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.header"></a><h6>
+<a name="id829012"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.example"></a><h6>
+<a name="id829095"></a>
+ <a class="link" href="boilerplate_macros.html#phoenix.inside.expression.boilerplate_macros.boost_phoenix_define_expression_ext_vararg.example">Example</a>
+ </h6>
+<p>
+ TBD
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../expression.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../expression.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../actions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression"></a><a class="link" href="boost_phoenix_define_expression.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION">BOOST_PHOENIX_DEFINE_EXPRESSION</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.description"></a><h6>
-<a name="id703113"></a>
+<a name="id623241"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.description">Description</a>
         </h6>
 <p>
@@ -36,7 +36,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.synopsis"></a><h6>
-<a name="id703147"></a>
+<a name="id623276"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION</span><span class="special">(</span>
@@ -47,7 +47,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.semantics"></a><h6>
-<a name="id703252"></a>
+<a name="id623381"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.semantics">Semantics</a>
         </h6>
 <p>
@@ -95,13 +95,13 @@
           This macros also adds a specialization for <code class="computeroutput"><span class="identifier">meta_grammar</span><span class="special">::</span><span class="identifier">case_</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;</span></code>.
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.header"></a><h6>
-<a name="id703740"></a>
+<a name="id623869"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression.example"></a><h6>
-<a name="id703822"></a>
+<a name="id623951"></a>
           <a class="link" href="boost_phoenix_define_expression.html#phoenix.inside.expression.boost_phoenix_define_expression.example">Example</a>
         </h6>
 <p>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext"></a><a class="link" href="boost_phoenix_define_expression_ext.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.description"></a><h6>
-<a name="id705054"></a>
+<a name="id625182"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.description">Description</a>
         </h6>
 <p>
@@ -36,7 +36,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.synopsis"></a><h6>
-<a name="id705088"></a>
+<a name="id625218"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span><span class="special">(</span>
@@ -50,7 +50,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.semantics"></a><h6>
-<a name="id705229"></a>
+<a name="id625360"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.semantics">Semantics</a>
         </h6>
 <p>
@@ -99,13 +99,13 @@
           This macros also adds a specialization for <code class="computeroutput"><span class="identifier">meta_grammar</span><span class="special">::</span><span class="identifier">case_</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">name</span><span class="special">&gt;</span></code>.
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.header"></a><h6>
-<a name="id705729"></a>
+<a name="id625859"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext.example"></a><h6>
-<a name="id705812"></a>
+<a name="id625942"></a>
           <a class="link" href="boost_phoenix_define_expression_ext.html#phoenix.inside.expression.boost_phoenix_define_expression_ext.example">Example</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT</span><span class="special">(</span>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg"></a><a class="link" href="boost_phoenix_define_expression_ext_vararg.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.description"></a><h6>
-<a name="id705973"></a>
+<a name="id626103"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.description">Description</a>
         </h6>
 <p>
@@ -36,7 +36,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.synopsis"></a><h6>
-<a name="id706009"></a>
+<a name="id626139"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_EXT_VARARG</span><span class="special">(</span>
@@ -50,7 +50,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.semantics"></a><h6>
-<a name="id706151"></a>
+<a name="id626281"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.semantics">Semantics</a>
         </h6>
 <p>
@@ -99,13 +99,13 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.header"></a><h6>
-<a name="id706615"></a>
+<a name="id626746"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.example"></a><h6>
-<a name="id706698"></a>
+<a name="id626828"></a>
           <a class="link" href="boost_phoenix_define_expression_ext_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_ext_vararg.example">Example</a>
         </h6>
 <p>

Modified: trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg"></a><a class="link" href="boost_phoenix_define_expression_vararg.html" title="BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</a>
 </h4></div></div></div>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.description"></a><h6>
-<a name="id704170"></a>
+<a name="id624299"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.description">Description</a>
         </h6>
 <p>
@@ -36,7 +36,7 @@
           create Phoenix Expressions
         </p>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.synopsis"></a><h6>
-<a name="id704206"></a>
+<a name="id624335"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.synopsis">Synopsis</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span><span class="special">(</span>
@@ -49,7 +49,7 @@
 <span class="special">)</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.semantics"></a><h6>
-<a name="id704338"></a>
+<a name="id624466"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.semantics">Semantics</a>
         </h6>
 <p>
@@ -97,13 +97,13 @@
 <span class="special">}</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.header"></a><h6>
-<a name="id704790"></a>
+<a name="id624918"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.header">Header</a>
         </h6>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">expression</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <a name="phoenix.inside.expression.boost_phoenix_define_expression_vararg.example"></a><h6>
-<a name="id704873"></a>
+<a name="id625002"></a>
           <a class="link" href="boost_phoenix_define_expression_vararg.html#phoenix.inside.expression.boost_phoenix_define_expression_vararg.example">Example</a>
         </h6>
 <pre class="programlisting"><span class="identifier">BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG</span><span class="special">(</span>

Modified: trunk/libs/phoenix/doc/html/phoenix/introduction.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/introduction.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/introduction.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
-<link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="what_s_new/phoenix_3_0.html" title="Phoenix 3.0">
 <link rel="next" href="starter_kit.html" title="Starter Kit">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="starter_kit.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="what_s_new/phoenix_3_0.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="starter_kit.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -64,7 +64,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="starter_kit.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="what_s_new/phoenix_3_0.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="starter_kit.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -35,6 +35,8 @@
 <dt><span class="section">Nothing</span></dt>
 </dl></dd>
 <dt><span class="section">Function</span></dt>
+<dd><dl><dt><span class="section"><a href="modules/function/adapting_functions.html">Adapting
+ Functions</a></span></dt></dl></dd>
 <dt><span class="section">Operator</span></dt>
 <dt><span class="section">Statement</span></dt>
 <dd><dl>
@@ -66,6 +68,8 @@
 </dl></dd>
 <dt><span class="section">Bind</span></dt>
 <dd><dl>
+<dt><span class="section"><a href="modules/bind/binding_function_objects.html">Binding
+ Function Objects</a></span></dt>
 <dt><span class="section">Binding Functions</span></dt>
 <dt><span class="section"><a href="modules/bind/binding_member_functions.html">Binding
         Member Functions</a></span></dt>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/bind.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/bind.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/bind.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../modules.html" title="Modules">
 <link rel="prev" href="scope/lambda.html" title="lambda">
-<link rel="next" href="bind/binding_functions.html" title="Binding Functions">
+<link rel="next" href="bind/binding_function_objects.html" title="Binding Function Objects">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,13 +20,15 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="scope/lambda.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bind/binding_functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="scope/lambda.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bind/binding_function_objects.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="phoenix.modules.bind"></a><a class="link" href="bind.html" title="Bind">Bind</a>
 </h3></div></div></div>
 <div class="toc"><dl>
+<dt><span class="section"><a href="bind/binding_function_objects.html">Binding
+ Function Objects</a></span></dt>
 <dt><span class="section">Binding Functions</span></dt>
 <dt><span class="section"><a href="bind/binding_member_functions.html">Binding
         Member Functions</a></span></dt>
@@ -50,10 +52,10 @@
 <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 existing code, binders get the job done faster.
+ Take note that binding functions, member functions or member variables
+ is 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>.
         </p></td></tr>
 </table></div>
 <p>
@@ -72,7 +74,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="scope/lambda.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bind/binding_functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="scope/lambda.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bind/binding_function_objects.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_function_objects.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_function_objects.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binding Function Objects</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../bind.html" title="Bind">
+<link rel="prev" href="../bind.html" title="Bind">
+<link rel="next" href="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"><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="../bind.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.bind.binding_function_objects"></a><a class="link" href="binding_function_objects.html" title="Binding Function Objects">Binding
+ Function Objects</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind_function_object</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<p>
+ Binding function objects serves two purposes: * Partial function application
+ * Quick adaption of already existing function objects
+ </p>
+<p>
+ In order to deduce the return type of the function object, it has to implement
+ the <a href="http://www.boost.org/doc/libs/release/libs/utility/utility.htm#result_of" target="_top">Boost.Result
+ Of</a> protocol. If the bound function object is polymorphic, the resulting
+ binding object is polymorphic.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bind.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_functions.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_functions.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_functions.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../bind.html" title="Bind">
-<link rel="prev" href="../bind.html" title="Bind">
+<link rel="prev" href="binding_function_objects.html" title="Binding Function Objects">
 <link rel="next" href="binding_member_functions.html" title="Binding Member Functions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,13 +20,13 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../bind.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_member_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="binding_function_objects.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_member_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="phoenix.modules.bind.binding_functions"></a><a class="link" href="binding_functions.html" title="Binding Functions">Binding Functions</a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
           Example, given a function <code class="computeroutput"><span class="identifier">foo</span></code>:
@@ -63,7 +63,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../bind.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_member_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="binding_function_objects.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bind.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binding_member_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_functions.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_functions.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_functions.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.modules.bind.binding_member_functions"></a><a class="link" href="binding_member_functions.html" title="Binding Member Functions">Binding
         Member Functions</a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">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">&gt;</span>
 </pre>
 <p>
           Binding member functions can be done similarly. A bound member function

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_variables.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_variables.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/bind/binding_member_variables.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -27,7 +27,7 @@
 <a name="phoenix.modules.bind.binding_member_variables"></a><a class="link" href="binding_member_variables.html" title="Binding Member Variables">Binding
         Member Variables</a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">bind</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">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">&gt;</span>
 </pre>
 <p>
           Member variables can also be bound much like member functions. Member variables

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/core/arguments.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/core/arguments.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/core/arguments.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -38,7 +38,7 @@
           an imaginary data-bin where a function argument will be placed.
         </p>
 <a name="phoenix.modules.core.arguments.predefined_arguments"></a><h6>
-<a name="id671864"></a>
+<a name="id790470"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.predefined_arguments">Predefined
           Arguments</a>
         </h6>
@@ -82,7 +82,7 @@
           </p></td></tr>
 </table></div>
 <a name="phoenix.modules.core.arguments.user_defined_arguments"></a><h6>
-<a name="id672389"></a>
+<a name="id790995"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.user_defined_arguments">User
           Defined Arguments</a>
         </h6>
@@ -104,7 +104,7 @@
 <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>
 <a name="phoenix.modules.core.arguments.evaluating_an_argument"></a><h6>
-<a name="id672540"></a>
+<a name="id791146"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.evaluating_an_argument">Evaluating
           an Argument</a>
         </h6>
@@ -131,7 +131,7 @@
 <span class="identifier">Hello</span> <span class="identifier">World</span>
 </pre>
 <a name="phoenix.modules.core.arguments.extra_arguments"></a><h6>
-<a name="id672837"></a>
+<a name="id791443"></a>
           <a class="link" href="arguments.html#phoenix.modules.core.arguments.extra_arguments">Extra Arguments</a>
         </h6>
 <p>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/core/references.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/core/references.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/core/references.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -66,7 +66,7 @@
 <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.modules.core.references.evaluating_a_reference"></a><h6>
-<a name="id671461"></a>
+<a name="id790067"></a>
           <a class="link" href="references.html#phoenix.modules.core.references.evaluating_a_reference">Evaluating
           a Reference</a>
         </h6>
@@ -82,7 +82,7 @@
           prints out "3 Hello World"
         </p>
 <a name="phoenix.modules.core.references.constant_references"></a><h6>
-<a name="id671598"></a>
+<a name="id790204"></a>
           <a class="link" href="references.html#phoenix.modules.core.references.constant_references">Constant
           References</a>
         </h6>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/core/values.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/core/values.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/core/values.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -54,7 +54,7 @@
           but, as we'll see later on, there are situations where this is unavoidable.
         </p>
 <a name="phoenix.modules.core.values.evaluating_a_value"></a><h3>
-<a name="id670980"></a>
+<a name="id789586"></a>
           <a class="link" href="values.html#phoenix.modules.core.values.evaluating_a_value">Evaluating
           a Value</a>
         </h3>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/function.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/function.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../modules.html" title="Modules">
 <link rel="prev" href="core/nothing.html" title="Nothing">
-<link rel="next" href="operator.html" title="Operator">
+<link rel="next" href="function/adapting_functions.html" title="Adapting Functions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,14 +20,14 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="core/nothing.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="operator.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="core/nothing.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="function/adapting_functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="phoenix.modules.function"></a><a class="link" href="function.html" title="Function">Function</a>
 </h3></div></div></div>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
-</pre>
+<div class="toc"><dl><dt><span class="section"><a href="function/adapting_functions.html">Adapting
+ Functions</a></span></dt></dl></div>
 <p>
         The <code class="computeroutput"><span class="identifier">function</span></code> class template
         provides a mechanism for implementing lazily evaluated functions. Syntactically,
@@ -35,6 +35,8 @@
         looks familiar and feels the same as ordinary C++ functions. However, unlike
         ordinary functions, the actual function execution is deferred.
       </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
 <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>),
@@ -142,7 +144,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="core/nothing.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="operator.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="core/nothing.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="function/adapting_functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,370 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Adapting Functions</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="../function.html" title="Function">
+<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"><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="../function.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../operator.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.adapting_functions"></a><a class="link" href="adapting_functions.html" title="Adapting Functions">Adapting
+ Functions</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span></dt>
+<dt><span class="section">BOOST_PHOENIX_ADAPT_FUNCTION</span></dt>
+<dt><span class="section">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span></dt>
+<dt><span class="section">BOOST_PHOENIX_ADAPT_CALLABLE</span></dt>
+</dl></div>
+<p>
+ If you want to adapt already existing functions or function objects it
+ will become a repetetive task. Therefor the following boilerplate macros
+ are provided to help you adapt already exsiting functions, thus reducing
+ the need to <a class="link" href="../bind.html" title="Bind">phoenix.modules.bind</a>
+ functions.
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary"></a><a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary" title="BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.description"></a><h6>
+<a name="id792801"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary nullary function a lazy function.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ These macros generate no global objects. The resulting lazy functions
+ are real functions that create the lazy function expression object
+ </p></td></tr>
+</table></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.synopsis"></a><h6>
+<a name="id792845"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.semantics"></a><h6>
+<a name="id792915"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates all necessary code to have a nullary lazy function
+ <code class="computeroutput"><span class="identifier">LAZY_FUNCTION</span></code> which calls
+ the nullary <code class="computeroutput"><span class="identifier">FUNCTION</span></code>
+ that has the return type <code class="computeroutput"><span class="identifier">RETURN_TYPE</span></code>
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.header"></a><h6>
+<a name="id792970"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.example"></a><h6>
+<a name="id793054"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.example">Example</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">foo</span><span class="special">()</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="number">42</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="identifier">demo</span><span class="special">::</span><span class="identifier">foo</span><span class="special">)</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">placeholders</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
+
+ <span class="identifier">assert</span><span class="special">((</span><span class="identifier">_1</span> <span class="special">+</span> <span class="identifier">foo</span><span class="special">())(</span><span class="number">1</span><span class="special">)</span> <span class="special">==</span> <span class="number">43</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function"></a><a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function" title="BOOST_PHOENIX_ADAPT_FUNCTION">BOOST_PHOENIX_ADAPT_FUNCTION</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.description"></a><h6>
+<a name="id793334"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.synopsis"></a><h6>
+<a name="id793369"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_ARITY</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.semantics"></a><h6>
+<a name="id793450"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates all necessary code to have a lazy function
+ <code class="computeroutput"><span class="identifier">LAZY_FUNCTION</span></code> which calls
+ <code class="computeroutput"><span class="identifier">FUNCTION</span></code> that has the
+ return type <code class="computeroutput"><span class="identifier">RETURN_TYPE</span></code>
+ with <code class="computeroutput"><span class="identifier">FUNCTION_ARITY</span></code> number
+ of arguments.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.header"></a><h6>
+<a name="id793517"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.example"></a><h6>
+<a name="id793600"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.example">Example</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">plus</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">b</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">a</span> <span class="special">+</span> <span class="identifier">b</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="identifier">T</span>
+ <span class="identifier">plus</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">c</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</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="special">}</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">plus</span><span class="special">,</span> <span class="identifier">demo</span><span class="special">::</span><span class="identifier">plus</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span>
+
+<span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span><span class="special">(</span>
+ <span class="keyword">typename</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">A0</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="special">,</span> <span class="identifier">plus</span>
+ <span class="special">,</span> <span class="identifier">demo</span><span class="special">::</span><span class="identifier">plus</span>
+ <span class="special">,</span> <span class="number">3</span>
+<span class="special">)</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg1</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg2</span><span class="special">;</span>
+
+ <span class="keyword">int</span> <span class="identifier">a</span> <span class="special">=</span> <span class="number">123</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">256</span><span class="special">;</span>
+
+ <span class="identifier">assert</span><span class="special">(</span><span class="identifier">plus</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">a</span><span class="special">,</span> <span class="identifier">b</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>
+ <span class="identifier">assert</span><span class="special">(</span><span class="identifier">plus</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="number">3</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="special">==</span> <span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">3</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary"></a><a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.description"></a><h6>
+<a name="id794378"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary nullary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.synopsis"></a><h6>
+<a name="id794414"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION</span>
+ <span class="special">,</span> <span class="identifier">CALLABLE</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.semantics"></a><h6>
+<a name="id794474"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates all necessary code to create <code class="computeroutput"><span class="identifier">LAZY_FUNCTION</span></code> which creates a lazy
+ function object that represents a nullary call to <code class="computeroutput"><span class="identifier">CALLABLE</span></code>.
+ The return type is specified by <code class="computeroutput"><span class="identifier">CALLABLE</span></code>
+ conforming to the <a href="http://www.boost.org/doc/libs/release/libs/utility/utility.htm#result_of" target="_top">Boost.Result
+ Of</a> protocol.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.header"></a><h6>
+<a name="id794537"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.example"></a><h6>
+<a name="id794621"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.example">Example</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">foo</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+ <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="number">42</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span><span class="special">(</span><span class="identifier">foo</span><span class="special">,</span> <span class="identifier">demo</span><span class="special">::</span><span class="identifier">foo</span><span class="special">)</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">placeholders</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
+
+ <span class="identifier">assert</span><span class="special">((</span><span class="identifier">_1</span> <span class="special">+</span> <span class="identifier">foo</span><span class="special">())(</span><span class="number">1</span><span class="special">)</span> <span class="special">==</span> <span class="number">43</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable"></a><a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable" title="BOOST_PHOENIX_ADAPT_CALLABLE">BOOST_PHOENIX_ADAPT_CALLABLE</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.description"></a><h6>
+<a name="id794940"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.synopsis"></a><h6>
+<a name="id794975"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_ARITY</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.semantics"></a><h6>
+<a name="id795045"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.semantics">Semantics</a>
+ </h6>
+<p>
+ The above macro generates all necessary code to create <code class="computeroutput"><span class="identifier">LAZY_FUNCTION</span></code> which creates a lazy
+ function object that represents a call to <code class="computeroutput"><span class="identifier">CALLABLE</span></code>
+ with <code class="computeroutput"><span class="identifier">FUNCTION_ARITY</span></code> arguments.
+ The return type is specified by <code class="computeroutput"><span class="identifier">CALLABLE</span></code>
+ conforming to the <a href="http://www.boost.org/doc/libs/release/libs/utility/utility.htm#result_of" target="_top">Boost.Result
+ Of</a> protocol.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.header"></a><h6>
+<a name="id795120"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.example"></a><h6>
+<a name="id795203"></a>
+ <a class="link" href="adapting_functions.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.example">Example</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">demo</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">plus</span>
+ <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Sig</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">This</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">A1</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">A0</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">)&gt;</span>
+ <span class="special">:</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">A0</span><span class="special">&gt;</span>
+ <span class="special">{};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">This</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">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">A0</span><span class="special">,</span> <span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">)&gt;</span>
+ <span class="special">:</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">A0</span><span class="special">&gt;</span>
+ <span class="special">{};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">&gt;</span>
+ <span class="identifier">A0</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a0</span><span class="special">,</span> <span class="identifier">A1</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a1</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">a0</span> <span class="special">+</span> <span class="identifier">a1</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">A2</span><span class="special">&gt;</span>
+ <span class="identifier">A0</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a0</span><span class="special">,</span> <span class="identifier">A1</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A2</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a2</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">a0</span> <span class="special">+</span> <span class="identifier">a1</span> <span class="special">+</span> <span class="identifier">a2</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span><span class="special">(</span><span class="identifier">plus</span><span class="special">,</span> <span class="identifier">demo</span><span class="special">::</span><span class="identifier">plus</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span>
+
+<span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span><span class="special">(</span><span class="identifier">plus</span><span class="special">,</span> <span class="identifier">demo</span><span class="special">::</span><span class="identifier">plus</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg1</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">arg2</span><span class="special">;</span>
+
+ <span class="keyword">int</span> <span class="identifier">a</span> <span class="special">=</span> <span class="number">123</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">256</span><span class="special">;</span>
+
+ <span class="identifier">assert</span><span class="special">(</span><span class="identifier">plus</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">a</span><span class="special">,</span> <span class="identifier">b</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>
+ <span class="identifier">assert</span><span class="special">(</span><span class="identifier">plus</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="number">3</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="special">==</span> <span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">3</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../function.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../operator.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_CALLABLE</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="prev" href="boost_phoenix_adapt_callable_nullary.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">
+<link rel="next" href="boost_phoenix_adapt_callable_vararg.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_VARARG">
+</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="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_vararg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable"></a><a class="link" href="boost_phoenix_adapt_callable.html" title="BOOST_PHOENIX_ADAPT_CALLABLE">BOOST_PHOENIX_ADAPT_CALLABLE</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.description"></a><h6>
+<a name="id814952"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.synopsis"></a><h6>
+<a name="id814987"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_ARITY</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.semantics"></a><h6>
+<a name="id815057"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.header"></a><h6>
+<a name="id815078"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.example"></a><h6>
+<a name="id815161"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_vararg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable_nullary.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable_nullary.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="prev" href="boost_phoenix_adapt_function_vararg.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_VARARG">
+<link rel="next" href="boost_phoenix_adapt_callable.html" title="BOOST_PHOENIX_ADAPT_CALLABLE">
+</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="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary"></a><a class="link" href="boost_phoenix_adapt_callable_nullary.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.description"></a><h6>
+<a name="id814715"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary nullary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.synopsis"></a><h6>
+<a name="id814751"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.semantics"></a><h6>
+<a name="id814811"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.header"></a><h6>
+<a name="id814831"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.example"></a><h6>
+<a name="id814915"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_nullary.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable_vararg.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_callable_vararg.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="prev" href="boost_phoenix_adapt_callable.html" title="BOOST_PHOENIX_ADAPT_CALLABLE">
+<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"><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="boost_phoenix_adapt_callable.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../operator.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg"></a><a class="link" href="boost_phoenix_adapt_callable_vararg.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_VARARG">BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.description"></a><h6>
+<a name="id815201"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.synopsis"></a><h6>
+<a name="id815238"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.semantics"></a><h6>
+<a name="id815298"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.header"></a><h6>
+<a name="id815317"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.example"></a><h6>
+<a name="id815400"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_callable_vararg.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_callable.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../operator.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_FUNCTION</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="prev" href="boost_phoenix_adapt_function_nullary.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY">
+<link rel="next" href="boost_phoenix_adapt_function_vararg.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_VARARG">
+</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="boost_phoenix_adapt_function_nullary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function"></a><a class="link" href="boost_phoenix_adapt_function.html" title="BOOST_PHOENIX_ADAPT_FUNCTION">BOOST_PHOENIX_ADAPT_FUNCTION</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.description"></a><h6>
+<a name="id814209"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.synopsis"></a><h6>
+<a name="id814244"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_ARITY</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.semantics"></a><h6>
+<a name="id814325"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.header"></a><h6>
+<a name="id814346"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.example"></a><h6>
+<a name="id814429"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_function_nullary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function_nullary.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function_nullary.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="prev" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="next" href="boost_phoenix_adapt_function.html" title="BOOST_PHOENIX_ADAPT_FUNCTION">
+</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="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary"></a><a class="link" href="boost_phoenix_adapt_function_nullary.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.description"></a><h6>
+<a name="id813962"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary nullary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.synopsis"></a><h6>
+<a name="id813998"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.semantics"></a><h6>
+<a name="id814068"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.header"></a><h6>
+<a name="id814088"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.example"></a><h6>
+<a name="id814172"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_nullary.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function_vararg.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions/boost_phoenix_adapt_function_vararg.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../adapting_functions.html" title="Adapting Functions">
+<link rel="prev" href="boost_phoenix_adapt_function.html" title="BOOST_PHOENIX_ADAPT_FUNCTION">
+<link rel="next" href="boost_phoenix_adapt_callable_nullary.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">
+</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="boost_phoenix_adapt_function.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg"></a><a class="link" href="boost_phoenix_adapt_function_vararg.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_VARARG">BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</a>
+</h5></div></div></div>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.description"></a><h6>
+<a name="id814468"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</span></code>
+ is a macro that can be used to generate all the necessary boilerplate
+ to make an arbitrary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.synopsis"></a><h6>
+<a name="id814504"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.semantics"></a><h6>
+<a name="id814574"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.header"></a><h6>
+<a name="id814594"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.example"></a><h6>
+<a name="id814677"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.adapting_functions.boost_phoenix_adapt_function_vararg.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_function.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapting_functions.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_CALLABLE</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="boost_phoenix_adapt_callable_nullary.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">
+<link rel="next" href="boost_phoenix_adapt_callable_vararg.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_VARARG">
+</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="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_vararg.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable"></a><a class="link" href="boost_phoenix_adapt_callable.html" title="BOOST_PHOENIX_ADAPT_CALLABLE">BOOST_PHOENIX_ADAPT_CALLABLE</a>
+</h4></div></div></div>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable.description"></a><h6>
+<a name="id730404"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.boost_phoenix_adapt_callable.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span></code>
+ is a macro that can be used to generate all the necessary boilerplate to
+ make an arbitrary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable.synopsis"></a><h6>
+<a name="id730439"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.boost_phoenix_adapt_callable.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_ARITY</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable.semantics"></a><h6>
+<a name="id730509"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.boost_phoenix_adapt_callable.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable.header"></a><h6>
+<a name="id730529"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.boost_phoenix_adapt_callable.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable.example"></a><h6>
+<a name="id730611"></a>
+ <a class="link" href="boost_phoenix_adapt_callable.html#phoenix.modules.function.boost_phoenix_adapt_callable.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_vararg.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable_nullary.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable_nullary.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="boost_phoenix_adapt_function_vararg.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_VARARG">
+<link rel="next" href="boost_phoenix_adapt_callable.html" title="BOOST_PHOENIX_ADAPT_CALLABLE">
+</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="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_nullary"></a><a class="link" href="boost_phoenix_adapt_callable_nullary.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</a>
+</h4></div></div></div>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_nullary.description"></a><h6>
+<a name="id730170"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.boost_phoenix_adapt_callable_nullary.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span></code>
+ is a macro that can be used to generate all the necessary boilerplate to
+ make an arbitrary nullary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_nullary.synopsis"></a><h6>
+<a name="id730205"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.boost_phoenix_adapt_callable_nullary.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_nullary.semantics"></a><h6>
+<a name="id730263"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.boost_phoenix_adapt_callable_nullary.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_nullary.header"></a><h6>
+<a name="id730283"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.boost_phoenix_adapt_callable_nullary.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_nullary.example"></a><h6>
+<a name="id730366"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_nullary.html#phoenix.modules.function.boost_phoenix_adapt_callable_nullary.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable_vararg.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_callable_vararg.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,75 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="boost_phoenix_adapt_callable.html" title="BOOST_PHOENIX_ADAPT_CALLABLE">
+<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"><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="boost_phoenix_adapt_callable.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../operator.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_vararg"></a><a class="link" href="boost_phoenix_adapt_callable_vararg.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_VARARG">BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</a>
+</h4></div></div></div>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_vararg.description"></a><h6>
+<a name="id730648"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.boost_phoenix_adapt_callable_vararg.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</span></code>
+ is a macro that can be used to generate all the necessary boilerplate to
+ make an arbitrary function object a lazy function.
+ </p>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_vararg.synopsis"></a><h6>
+<a name="id730683"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.boost_phoenix_adapt_callable_vararg.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_CALLABLE_VARARG</span><span class="special">(</span>
+ <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_vararg.semantics"></a><h6>
+<a name="id730742"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.boost_phoenix_adapt_callable_vararg.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_vararg.header"></a><h6>
+<a name="id730762"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.boost_phoenix_adapt_callable_vararg.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_callable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_callable_vararg.example"></a><h6>
+<a name="id730844"></a>
+ <a class="link" href="boost_phoenix_adapt_callable_vararg.html#phoenix.modules.function.boost_phoenix_adapt_callable_vararg.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_callable.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../operator.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,77 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_FUNCTION</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="boost_phoenix_adapt_function_nullary.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY">
+<link rel="next" href="boost_phoenix_adapt_function_vararg.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_VARARG">
+</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="boost_phoenix_adapt_function_nullary.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.boost_phoenix_adapt_function"></a><a class="link" href="boost_phoenix_adapt_function.html" title="BOOST_PHOENIX_ADAPT_FUNCTION">BOOST_PHOENIX_ADAPT_FUNCTION</a>
+</h4></div></div></div>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function.description"></a><h6>
+<a name="id729672"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.boost_phoenix_adapt_function.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span></code>
+ is a macro that can be used to generate all the necessary boilerplate to
+ make an arbitrary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function.synopsis"></a><h6>
+<a name="id729707"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.boost_phoenix_adapt_function.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_ARITY</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function.semantics"></a><h6>
+<a name="id729787"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.boost_phoenix_adapt_function.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function.header"></a><h6>
+<a name="id729806"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.boost_phoenix_adapt_function.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function.example"></a><h6>
+<a name="id729889"></a>
+ <a class="link" href="boost_phoenix_adapt_function.html#phoenix.modules.function.boost_phoenix_adapt_function.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_function_nullary.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function_vararg.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function_nullary.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function_nullary.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="../function.html" title="Function">
+<link rel="next" href="boost_phoenix_adapt_function.html" title="BOOST_PHOENIX_ADAPT_FUNCTION">
+</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="../function.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_nullary"></a><a class="link" href="boost_phoenix_adapt_function_nullary.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</a>
+</h4></div></div></div>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_nullary.description"></a><h6>
+<a name="id729430"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.boost_phoenix_adapt_function_nullary.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span></code>
+ is a macro that can be used to generate all the necessary boilerplate to
+ make an arbitrary nullary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_nullary.synopsis"></a><h6>
+<a name="id729465"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.boost_phoenix_adapt_function_nullary.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_nullary.semantics"></a><h6>
+<a name="id729534"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.boost_phoenix_adapt_function_nullary.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_nullary.header"></a><h6>
+<a name="id729554"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.boost_phoenix_adapt_function_nullary.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_nullary.example"></a><h6>
+<a name="id729636"></a>
+ <a class="link" href="boost_phoenix_adapt_function_nullary.html#phoenix.modules.function.boost_phoenix_adapt_function_nullary.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../function.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_function.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function_vararg.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/function/boost_phoenix_adapt_function_vararg.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../function.html" title="Function">
+<link rel="prev" href="boost_phoenix_adapt_function.html" title="BOOST_PHOENIX_ADAPT_FUNCTION">
+<link rel="next" href="boost_phoenix_adapt_callable_nullary.html" title="BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY">
+</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="boost_phoenix_adapt_function.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_vararg"></a><a class="link" href="boost_phoenix_adapt_function_vararg.html" title="BOOST_PHOENIX_ADAPT_FUNCTION_VARARG">BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</a>
+</h4></div></div></div>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_vararg.description"></a><h6>
+<a name="id729926"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.boost_phoenix_adapt_function_vararg.description">Description</a>
+ </h6>
+<p>
+ <code class="computeroutput"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</span></code>
+ is a macro that can be used to generate all the necessary boilerplate to
+ make an arbitrary function a lazy function.
+ </p>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_vararg.synopsis"></a><h6>
+<a name="id729961"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.boost_phoenix_adapt_function_vararg.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="identifier">BOOST_PHOENIX_ADAPT_FUNCTION_VARARG</span><span class="special">(</span>
+ <span class="identifier">RETURN_TYPE</span>
+ <span class="special">,</span> <span class="identifier">LAZY_FUNCTION_NAME</span>
+ <span class="special">,</span> <span class="identifier">FUNCTION_NAME</span>
+<span class="special">)</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_vararg.semantics"></a><h6>
+<a name="id730030"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.boost_phoenix_adapt_function_vararg.semantics">Semantics</a>
+ </h6>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_vararg.header"></a><h6>
+<a name="id730050"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.boost_phoenix_adapt_function_vararg.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">function</span><span class="special">/</span><span class="identifier">adapt_function</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<a name="phoenix.modules.function.boost_phoenix_adapt_function_vararg.example"></a><h6>
+<a name="id730132"></a>
+ <a class="link" href="boost_phoenix_adapt_function_vararg.html#phoenix.modules.function.boost_phoenix_adapt_function_vararg.example">Example</a>
+ </h6>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_phoenix_adapt_function.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="boost_phoenix_adapt_callable_nullary.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/operator.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/operator.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/operator.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
 <link rel="up" href="../modules.html" title="Modules">
-<link rel="prev" href="function.html" title="Function">
+<link rel="prev" href="function/adapting_functions.html" title="Adapting Functions">
 <link rel="next" href="statement.html" title="Statement">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="function.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="statement.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="function/adapting_functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="statement.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
@@ -141,18 +141,18 @@
 </span><span class="identifier">val</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Lazily evaluated
 </span></pre>
 <a name="phoenix.modules.operator.supported_operators"></a><h5>
-<a name="id675204"></a>
+<a name="id797479"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.supported_operators">Supported operators</a>
       </h5>
 <a name="phoenix.modules.operator.unary_operators"></a><h5>
-<a name="id675223"></a>
+<a name="id797499"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.unary_operators">Unary operators</a>
       </h5>
 <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">&amp;</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.modules.operator.binary_operators"></a><h5>
-<a name="id675354"></a>
+<a name="id797630"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.binary_operators">Binary operators</a>
       </h5>
 <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">&amp;=,</span> <span class="special">|=,</span> <span class="special">^=,</span> <span class="special">&lt;&lt;=,</span> <span class="special">&gt;&gt;=</span>
@@ -161,7 +161,7 @@
 <span class="special">&amp;&amp;,</span> <span class="special">||,</span> <span class="special">-&gt;*</span>
 </pre>
 <a name="phoenix.modules.operator.ternary_operator"></a><h5>
-<a name="id675555"></a>
+<a name="id797830"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.ternary_operator">Ternary operator</a>
       </h5>
 <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>
@@ -174,7 +174,7 @@
         albeit in a lazy manner.
       </p>
 <a name="phoenix.modules.operator.member_pointer_operator"></a><h5>
-<a name="id675656"></a>
+<a name="id797932"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.member_pointer_operator">Member pointer
         operator</a>
       </h5>
@@ -215,7 +215,7 @@
 <span class="special">(</span><span class="identifier">arg1</span><span class="special">-&gt;*&amp;</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-&gt;func(i)
 </span></pre>
 <a name="phoenix.modules.operator.include_files"></a><h5>
-<a name="id676037"></a>
+<a name="id798312"></a>
         <a class="link" href="operator.html#phoenix.modules.operator.include_files">Include Files</a>
       </h5>
 <div class="informaltable"><table class="table">
@@ -357,7 +357,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="function.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="statement.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="function/adapting_functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../modules.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="statement.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -80,7 +80,7 @@
         </p>
 </div>
 <div class="table">
-<a name="id689927"></a><p class="title"><b>Table&#160;1.6.&#160;Iteration Algorithms</b></p>
+<a name="id812292"></a><p class="title"><b>Table&#160;1.6.&#160;Iteration Algorithms</b></p>
 <div class="table-contents"><table class="table" summary="Iteration Algorithms">
 <colgroup>
 <col>
@@ -103,7 +103,7 @@
 <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>
+ <span class="identifier">f</span><span class="special">)</span></code>
                   </p>
                 </td>
 <td>
@@ -135,7 +135,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id690205"></a><p class="title"><b>Table&#160;1.7.&#160;Querying Algorithms</b></p>
+<a name="id812571"></a><p class="title"><b>Table&#160;1.7.&#160;Querying Algorithms</b></p>
 <div class="table-contents"><table class="table" summary="Querying Algorithms">
 <colgroup>
 <col>
@@ -448,7 +448,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id692677"></a><p class="title"><b>Table&#160;1.8.&#160;Transformation Algorithms</b></p>
+<a name="id815043"></a><p class="title"><b>Table&#160;1.8.&#160;Transformation Algorithms</b></p>
 <div class="table-contents"><table class="table" summary="Transformation Algorithms">
 <colgroup>
 <col>

Modified: trunk/libs/phoenix/doc/html/phoenix/modules/stl/container.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/modules/stl/container.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/modules/stl/container.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -144,7 +144,7 @@
           does not use the member "dot" syntax.
         </p>
 <div class="table">
-<a name="id686875"></a><p class="title"><b>Table&#160;1.4.&#160;Sample usage</b></p>
+<a name="id809241"></a><p class="title"><b>Table&#160;1.4.&#160;Sample usage</b></p>
 <div class="table-contents"><table class="table" summary="Sample usage">
 <colgroup>
 <col>
@@ -222,7 +222,7 @@
         </p>
 </div>
 <div class="table">
-<a name="id687215"></a><p class="title"><b>Table&#160;1.5.&#160;Lazy STL Container Functions</b></p>
+<a name="id809581"></a><p class="title"><b>Table&#160;1.5.&#160;Lazy STL Container Functions</b></p>
 <div class="table-contents"><table class="table" summary="Lazy STL Container Functions">
 <colgroup>
 <col>

Modified: trunk/libs/phoenix/doc/html/phoenix/organization.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/organization.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/organization.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -59,7 +59,7 @@
       files. There are no object files to link against.
     </p>
 <a name="phoenix.organization.core"></a><h3>
-<a name="id669310"></a>
+<a name="id787916"></a>
       <a class="link" href="organization.html#phoenix.organization.core">Core</a>
     </h3>
 <p>
@@ -79,7 +79,7 @@
       can again be another expression.
     </p>
 <div class="table">
-<a name="id669348"></a><p class="title"><b>Table&#160;1.2.&#160;Modules</b></p>
+<a name="id787954"></a><p class="title"><b>Table&#160;1.2.&#160;Modules</b></p>
 <div class="table-contents"><table class="table" summary="Modules">
 <colgroup>
 <col>
@@ -207,7 +207,7 @@
       core module is defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
     </p>
 <div class="table">
-<a name="id669636"></a><p class="title"><b>Table&#160;1.3.&#160;Includes</b></p>
+<a name="id788242"></a><p class="title"><b>Table&#160;1.3.&#160;Includes</b></p>
 <div class="table-contents"><table class="table" summary="Includes">
 <colgroup>
 <col>

Modified: trunk/libs/phoenix/doc/html/phoenix/starter_kit.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/starter_kit.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/starter_kit.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -59,7 +59,7 @@
       into high gear quickly.
     </p>
 <a name="phoenix.starter_kit.functors_everywhere"></a><h4>
-<a name="id664526"></a>
+<a name="id741655"></a>
       <a class="link" href="starter_kit.html#phoenix.starter_kit.functors_everywhere">Functors everywhere</a>
     </h4>
 <p>

Modified: trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -52,7 +52,7 @@
 <span class="identifier">function</span><span class="special">&lt;</span><span class="identifier">is_odd_impl</span><span class="special">&gt;</span> <span class="identifier">is_odd</span><span class="special">;</span>
 </pre>
 <a name="phoenix.starter_kit.lazy_functions.things_to_note_"></a><h5>
-<a name="id667330"></a>
+<a name="id785936"></a>
         <a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.things_to_note_">Things
         to note:</a>
       </h5>
@@ -82,7 +82,7 @@
         (See function.cpp)
       </p>
 <a name="phoenix.starter_kit.lazy_functions.predefined_lazy_functions"></a><h5>
-<a name="id667508"></a>
+<a name="id786114"></a>
         <a class="link" href="lazy_functions.html#phoenix.starter_kit.lazy_functions.predefined_lazy_functions">Predefined
         Lazy Functions</a>
       </h5>

Modified: trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -76,7 +76,7 @@
       </p>
 </div>
 <a name="phoenix.starter_kit.lazy_operators.first_practical_example"></a><h5>
-<a name="id666257"></a>
+<a name="id784863"></a>
         <a class="link" href="lazy_operators.html#phoenix.starter_kit.lazy_operators.first_practical_example">First
         Practical Example</a>
       </h5>

Modified: trunk/libs/phoenix/doc/html/phoenix/starter_kit/values.html
==============================================================================
--- trunk/libs/phoenix/doc/html/phoenix/starter_kit/values.html (original)
+++ trunk/libs/phoenix/doc/html/phoenix/starter_kit/values.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -39,7 +39,7 @@
         World"</span></code>.
       </p>
 <a name="phoenix.starter_kit.values.lazy_evaluation"></a><h5>
-<a name="id664690"></a>
+<a name="id783296"></a>
         <a class="link" href="values.html#phoenix.starter_kit.values.lazy_evaluation">Lazy Evaluation</a>
       </h5>
 <p>
@@ -71,7 +71,7 @@
         anything and defers the evaluation for later.
       </p>
 <a name="phoenix.starter_kit.values.callbacks"></a><h5>
-<a name="id664915"></a>
+<a name="id783521"></a>
         <a class="link" href="values.html#phoenix.starter_kit.values.callbacks">Callbacks</a>
       </h5>
 <p>

Added: trunk/libs/phoenix/doc/html/phoenix/what_s_new.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/what_s_new.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,44 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>What's New</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="next" href="what_s_new/phoenix_3_0.html" title="Phoenix 3.0">
+</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="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="what_s_new/phoenix_3_0.html"><img src="../../../../../doc/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.what_s_new"></a><a class="link" href="what_s_new.html" title="What's New">What's New</a>
+</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section">Phoenix 3.0</span></dt></dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="what_s_new/phoenix_3_0.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/phoenix/doc/html/phoenix/what_s_new/phoenix_3_0.html
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/html/phoenix/what_s_new/phoenix_3_0.html 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Phoenix 3.0</title>
+<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
+<link rel="up" href="../what_s_new.html" title="What's New">
+<link rel="prev" href="../what_s_new.html" title="What's New">
+<link rel="next" 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="../what_s_new.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../what_s_new.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../introduction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="phoenix.what_s_new.phoenix_3_0"></a><a class="link" href="phoenix_3_0.html" title="Phoenix 3.0">Phoenix 3.0</a>
+</h3></div></div></div>
+<p>
+ This is the first official release of Phoenix as first class Boost citizen.
+ As a consequence of the review of Phoenix V2 the internals got completely
+ rewritten. Therefore the internal extension mechanism is different.
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ composite&lt;...&gt;, as_composite&lt;...&gt; and compose are gone and
+ have been replaced. For an in depth discussion see the section <a class="link" href="../inside.html" title="Inside Phoenix">Inside Phoenix</a>
+ </li>
+<li class="listitem">
+ <a class="link" href="../modules/function.html" title="Function">phoenix.modules.function</a>
+ phoenix::function now supports function objects that implement the <a href="http://www.boost.org/doc/libs/release/libs/utility/utility.htm#result_of" target="_top">Boost.Result
+ Of</a> protocol. <span class="bold"><strong>This is a breaking change</strong></span>
+ </li>
+<li class="listitem">
+ Boilerplate macros to easily adapt already existing functions and function
+ objects
+ </li>
+<li class="listitem">
+ <a class="link" href="../modules/bind.html" title="Bind">Bind</a> is no completely compatible
+ with Boost.Bind
+ </li>
+</ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../what_s_new.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../what_s_new.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../introduction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/phoenix/doc/inside/expression.qbk
==============================================================================
--- trunk/libs/phoenix/doc/inside/expression.qbk (original)
+++ trunk/libs/phoenix/doc/inside/expression.qbk 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -131,7 +131,7 @@
     [link phoenix.inside.actions here].
 ]
 
-[/section Boilerplate Macros]
+[section Boilerplate Macros]
 
 When having more and more expressions, you start to realize that this is a very
 repetetive task. Phoenix provides boilerplate macros that make defining Phoenix
@@ -458,3 +458,5 @@
 [endsect]
 
 [endsect]
+
+[endsect]

Modified: trunk/libs/phoenix/doc/modules/bind.qbk
==============================================================================
--- trunk/libs/phoenix/doc/modules/bind.qbk (original)
+++ trunk/libs/phoenix/doc/modules/bind.qbk 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -16,17 +16,30 @@
 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.modules.function lazy functions]. However, since most of the time we
-are dealing with adaptation of existing code, binders get the job done faster.]
+[note Take note that binding functions, member functions or member variables is
+monomorphic. Rather than binding functions, the preferred way is to write true
+generic and polymorphic [link phoenix.modules.function lazy functions].]
 
 There is a set of overloaded `bind` template functions. Each `bind(x)`
 function generates a suitable binder object.
 
+[section Binding Function Objects]
+
+ #include <boost/phoenix/bind/bind_function_object.hpp>
+
+Binding function objects serves two purposes:
+* Partial function application
+* Quick adaption of already existing function objects
+
+In order to deduce the return type of the function object, it has to implement
+the __boost_result_of__ protocol. If the bound function object is polymorphic,
+the resulting binding object is polymorphic.
+
+[endsect]
+
 [section Binding Functions]
 
- #include <boost/phoenix/bind/bind.hpp>
+ #include <boost/phoenix/bind/bind_function.hpp>
 
 Example, given a function `foo`:
 
@@ -50,7 +63,7 @@
 [endsect]
 [section Binding Member Functions]
 
- #include <boost/phoenix/bind/bind.hpp>
+ #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:
@@ -76,7 +89,7 @@
 [endsect]
 [section Binding Member Variables]
 
- #include <boost/phoenix/bind/bind.hpp>
+ #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.modules.core.references `ref(x)`] that

Modified: trunk/libs/phoenix/doc/modules/function.qbk
==============================================================================
--- trunk/libs/phoenix/doc/modules/function.qbk (original)
+++ trunk/libs/phoenix/doc/modules/function.qbk 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -9,14 +9,14 @@
 
 [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.
 
+ #include <boost/phoenix/function.hpp>
+
 Unlike ordinary function pointers or functor objects that need to be explicitly
 bound through the bind function (see [link phoenix.modules.bind Bind]),
 the argument types of these functions are automatically lazily bound.
@@ -93,4 +93,310 @@
 often copied repeatedly, and state may change in one of the copies, rather than the
 original.]
 
+[section Adapting Functions]
+
+If you want to adapt already existing functions or function objects it will become
+a repetetive task. Therefor the following boilerplate macros are provided to help
+you adapt already exsiting functions, thus reducing the need to
+[link phoenix.modules.bind] functions.
+
+[section BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY]
+
+[heading Description]
+`BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY` is a macro that can be used to generate
+all the necessary boilerplate to make an arbitrary nullary function a lazy
+function.
+
+[note These macros generate no global objects. The resulting lazy functions are real functions
+ that create the lazy function expression object]
+
+[heading Synopsis]
+
+ BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(
+ RETURN_TYPE
+ , LAZY_FUNCTION
+ , FUNCTION
+ )
+
+[heading Semantics]
+
+The above macro generates all necessary code to have a nullary lazy function
+`LAZY_FUNCTION` which calls the nullary `FUNCTION` that has the return type
+`RETURN_TYPE`
+
+[heading Header]
+
+ #include <boost/phoenix/function/adapt_function.hpp>
+
+[heading Example]
+
+ namespace demo
+ {
+ int foo()
+ {
+ return 42;
+ }
+ }
+
+ BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(int, foo, demo::foo)
+
+ int main()
+ {
+ using boost::phoenix::placeholders::_1;
+
+ assert((_1 + foo())(1) == 43);
+ }
+
+[endsect]
+
+[section BOOST_PHOENIX_ADAPT_FUNCTION]
+
+[heading Description]
+`BOOST_PHOENIX_ADAPT_FUNCTION` is a macro that can be used to generate
+all the necessary boilerplate to make an arbitrary function a lazy function.
+
+[heading Synopsis]
+
+ BOOST_PHOENIX_ADAPT_FUNCTION(
+ RETURN_TYPE
+ , LAZY_FUNCTION
+ , FUNCTION
+ , FUNCTION_ARITY
+ )
+
+[heading Semantics]
+
+The above macro generates all necessary code to have a lazy function
+`LAZY_FUNCTION` which calls `FUNCTION` that has the return type
+`RETURN_TYPE` with `FUNCTION_ARITY` number of arguments.
+
+[heading Header]
+
+ #include <boost/phoenix/function/adapt_function.hpp>
+
+[heading Example]
+
+ namespace demo
+ {
+ int plus(int a, int b)
+ {
+ return a + b;
+ }
+
+ template <typename T>
+ T
+ plus(T a, T b, T c)
+ {
+ return a + b + c;
+ }
+ }
+
+ BOOST_PHOENIX_ADAPT_FUNCTION(int, plus, demo::plus, 2)
+
+ BOOST_PHOENIX_ADAPT_FUNCTION(
+ typename remove_reference<A0>::type
+ , plus
+ , demo::plus
+ , 3
+ )
+
+ int main()
+ {
+ using boost::phoenix::arg_names::arg1;
+ using boost::phoenix::arg_names::arg2;
+
+ int a = 123;
+ int b = 256;
+
+ assert(plus(arg1, arg2)(a, b) == a+b);
+ assert(plus(arg1, arg2, 3)(a, b) == a+b+3);
+ }
+
+[endsect]
+
+[/
+
+[section BOOST_PHOENIX_ADAPT_FUNCTION_VARARG]
+
+[heading Description]
+`BOOST_PHOENIX_ADAPT_FUNCTION_VARARG` is a macro that can be used to generate
+all the necessary boilerplate to make an arbitrary function a lazy
+function.
+
+[heading Synopsis]
+
+ BOOST_PHOENIX_ADAPT_FUNCTION_VARARG(
+ RETURN_TYPE
+ , LAZY_FUNCTION
+ , FUNCTION
+ )
+
+[heading Semantics]
+
+[heading Header]
+
+ #include <boost/phoenix/function/adapt_function.hpp>
+
+[heading Example]
+
+[endsect]
+]
+
+[section BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY]
+
+[heading Description]
+`BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY` is a macro that can be used to generate
+all the necessary boilerplate to make an arbitrary nullary function object a
+lazy function.
+
+[heading Synopsis]
+
+ BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY(
+ LAZY_FUNCTION
+ , CALLABLE
+ )
+
+[heading Semantics]
+
+The above macro generates all necessary code to create `LAZY_FUNCTION` which
+creates a lazy function object that represents a nullary call to `CALLABLE`.
+The return type is specified by `CALLABLE` conforming to the __boost_result_of__
+protocol.
+
+[heading Header]
+
+ #include <boost/phoenix/function/adapt_callable.hpp>
+
+[heading Example]
+
+ namespace demo
+ {
+ struct foo
+ {
+ typedef int result_type;
+
+ result_type operator()() const
+ {
+ return 42;
+ }
+ }
+ }
+
+ BOOST_PHOENIX_ADAPT_CALLABLE_NULLARY(foo, demo::foo)
+
+ int main()
+ {
+ using boost::phoenix::placeholders::_1;
+
+ assert((_1 + foo())(1) == 43);
+ }
+
+[endsect]
+
+[section BOOST_PHOENIX_ADAPT_CALLABLE]
+
+[heading Description]
+`BOOST_PHOENIX_ADAPT_CALLABLE` is a macro that can be used to generate
+all the necessary boilerplate to make an arbitrary function object a lazy
+function.
+
+[heading Synopsis]
+
+ BOOST_PHOENIX_ADAPT_CALLABLE(
+ LAZY_FUNCTION
+ , FUNCTION_NAME
+ , FUNCTION_ARITY
+ )
+
+[heading Semantics]
+
+The above macro generates all necessary code to create `LAZY_FUNCTION` which
+creates a lazy function object that represents a call to `CALLABLE` with `FUNCTION_ARITY`
+arguments.
+The return type is specified by `CALLABLE` conforming to the __boost_result_of__
+protocol.
+
+[heading Header]
+
+ #include <boost/phoenix/function/adapt_callable.hpp>
+
+[heading Example]
+
+ namespace demo
+ {
+ struct plus
+ {
+ template <typename Sig>
+ struct result;
+
+ template <typename This, typename A0, typename A1>
+ struct result<This(A0, A1)>
+ : remove_reference<A0>
+ {};
+
+ template <typename This, typename A0, typename A1, typename A2>
+ struct result<This(A0, A1, A2)>
+ : remove_reference<A0>
+ {};
+
+ template <typename A0, typename A1>
+ A0 operator()(A0 const & a0, A1 const & a1) const
+ {
+ return a0 + a1;
+ }
+
+ template <typename A0, typename A1, typename A2>
+ A0 operator()(A0 const & a0, A1 const & a1, A2 const & a2) const
+ {
+ return a0 + a1 + a2;
+ }
+ };
+ }
+
+ BOOST_PHOENIX_ADAPT_CALLABLE(plus, demo::plus, 2)
+
+ BOOST_PHOENIX_ADAPT_CALLABLE(plus, demo::plus, 3)
+
+ int main()
+ {
+ using boost::phoenix::arg_names::arg1;
+ using boost::phoenix::arg_names::arg2;
+
+ int a = 123;
+ int b = 256;
+
+ assert(plus(arg1, arg2)(a, b) == a+b);
+ assert(plus(arg1, arg2, 3)(a, b) == a+b+3);
+ }
+
+[endsect]
+
+[/
+[section BOOST_PHOENIX_ADAPT_CALLABLE_VARARG]
+
+[heading Description]
+`BOOST_PHOENIX_ADAPT_CALLABLE_VARARG` is a macro that can be used to generate
+all the necessary boilerplate to make an arbitrary function object a lazy
+function.
+
+[heading Synopsis]
+
+ BOOST_PHOENIX_ADAPT_CALLABLE_VARARG(
+ LAZY_FUNCTION_NAME
+ , FUNCTION_NAME
+ )
+
+[heading Semantics]
+
+[heading Header]
+
+ #include <boost/phoenix/function/adapt_callable.hpp>
+
+[heading Example]
+
+[endsect]
+/]
+
+[endsect]
+
 [endsect]

Modified: trunk/libs/phoenix/doc/phoenix3.qbk
==============================================================================
--- trunk/libs/phoenix/doc/phoenix3.qbk (original)
+++ trunk/libs/phoenix/doc/phoenix3.qbk 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -56,6 +56,7 @@
 [def __unspecified__ /unspecified/]
 
 [include preface.qbk]
+[include what_s_new.qbk]
 [include introduction.qbk]
 [include starter_kit.qbk]
 [include basics.qbk]

Added: trunk/libs/phoenix/doc/what_s_new.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/doc/what_s_new.qbk 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,31 @@
+[/==============================================================================
+ Copyright (C) 2001-2010 Joel de Guzman
+ Copyright (C) 2001-2005 Dan Marsden
+ Copyright (C) 2001-2010 Thomas Heller
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+===============================================================================/]
+
+[section What's New]
+
+[section Phoenix 3.0]
+
+This is the first official release of Phoenix as first class Boost citizen. As a
+consequence of the review of Phoenix V2 the internals got completely rewritten.
+Therefore the internal extension mechanism is different.
+
+* composite<...>, as_composite<...> and compose are gone and have been replaced.
+ For an in depth discussion see the section [link phoenix.inside Inside Phoenix]
+* [link phoenix.modules.function] phoenix::function now supports function objects
+ that implement the __boost_result_of__ protocol. *This is a breaking change*
+
+ [/as well as the old return type
+ deduction protocol. The same is true for [link phoenix.modules.bind Bind].]
+* Boilerplate macros to easily adapt already existing functions and function
+ objects
+* [link phoenix.modules.bind Bind] is no completely compatible with Boost.Bind
+
+[endsect]
+
+[endsect]

Modified: trunk/libs/phoenix/example/function.cpp
==============================================================================
--- trunk/libs/phoenix/example/function.cpp (original)
+++ trunk/libs/phoenix/example/function.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -14,11 +14,7 @@
 
 struct is_odd_
 {
- template <typename Arg>
- struct result
- {
- typedef bool type;
- };
+ typedef bool result_type;
 
     template <typename Arg>
     bool operator()(Arg arg1) const

Added: trunk/libs/phoenix/example/generator.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/example/generator.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,34 @@
+/*=============================================================================
+ Copyright (c) 2011 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)
+==============================================================================*/
+
+#include <vector>
+#include <algorithm>
+#include <iostream>
+#include <boost/phoenix.hpp>
+
+template <typename> struct wrap {};
+
+int main()
+{
+ using boost::phoenix::val;
+ using boost::phoenix::lambda;
+ using boost::phoenix::let;
+ using boost::phoenix::construct;
+ using boost::phoenix::placeholders::_1;
+ using boost::phoenix::local_names::_a;
+
+ int const n = 10;
+ std::vector<int> v1(n);
+
+ let(_a = construct<int>(0))
+ [
+ generate(_1, lambda(_a = ref(_a))[_a++])
+ , std::cout << val("result:\n")
+ , for_each(_1, lambda[std::cout << _1 << ' '])
+ , std::cout << val('\n')
+ ](v1);
+}

Modified: trunk/libs/phoenix/preprocess/wave.cfg
==============================================================================
--- trunk/libs/phoenix/preprocess/wave.cfg (original)
+++ trunk/libs/phoenix/preprocess/wave.cfg 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -1,9 +1,9 @@
 -DBOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES
 -DBOOST_PHOENIX_CREATE_PREPROCESSED_FILES
 -S/home/thomas/programming/boost
--S/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/include
--S/usr/include/c++/4.5.2
--S/usr/include/c++/4.5.2/x86_64-unknown-linux-gnu
+-S/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include
+-S/usr/include/c++/4.6.0
+-S/usr/include/c++/4.6.0/x86_64-unknown-linux-gnu
 -S/usr/include
 --variadics
 --long_long

Modified: trunk/libs/phoenix/test/Jamfile
==============================================================================
--- trunk/libs/phoenix/test/Jamfile (original)
+++ trunk/libs/phoenix/test/Jamfile 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -35,12 +35,15 @@
     ;
 
 test-suite phoenix_function :
+ [ run function/adapt_function.cpp ]
     [ run function/function_tests.cpp ]
+# [ run function/function_tests_phx2.cpp ]
     ;
 
 test-suite phoenix_bind :
     [ run bind/bind_function_tests.cpp ]
     [ run bind/bind_function_object_tests.cpp ]
+# [ run bind/bind_function_object_tests_phx2.cpp ]
     [ run bind/bind_member_function_tests.cpp ]
     [ run bind/bind_member_variable_tests.cpp ]
     ;
@@ -69,6 +72,7 @@
 
 test-suite phoenix_scope :
     [ run scope/lambda_tests.cpp ]
+# [ run scope/lambda_tests_phx2.cpp ]
     [ run scope/let_tests.cpp ]
     [ run scope/dynamic_tests.cpp ]
     [ run scope/bug3289.cpp ]
@@ -122,7 +126,7 @@
     [ run include/scope.cpp ]
     [ run include/statement.cpp ]
     [ run include/stl.cpp ]
- [ run include/bind/bind.cpp : : : : bind_bind ]
+# [ run include/bind/bind.cpp : : : : bind_bind ]
     [ run include/version.cpp ]
     [ run include/core/actor.cpp ]
     [ run include/core/argument.cpp ]

Added: trunk/libs/phoenix/test/bind/bind_function_object_tests_phx2.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/test/bind/bind_function_object_tests_phx2.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,112 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <iostream>
+#include <cmath>
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/operator.hpp>
+#include <boost/phoenix/bind.hpp>
+
+using namespace boost::phoenix;
+using namespace boost::phoenix::arg_names;
+using namespace std;
+
+ struct test
+ {
+ typedef void result_type;
+ void operator()() const
+ {
+ cout << "Test lazy functions...\n";
+ }
+ };
+
+ struct sqr
+ {
+ template <typename Arg>
+ struct result
+ {
+ typedef Arg type;
+ };
+
+ template <typename Arg>
+ Arg operator()(Arg n) const
+ {
+ return n * n;
+ }
+ };
+
+ struct fact
+ {
+ template <typename Arg>
+ struct result
+ {
+ typedef Arg type;
+ };
+
+ template <typename Arg>
+ Arg operator()(Arg n) const
+ {
+ return (n <= 0) ? 1 : n * (*this)(n-1);
+ }
+ };
+
+ struct power
+ {
+ template <typename Arg1, typename Arg2>
+ struct result
+ {
+ typedef Arg1 type;
+ };
+
+ template <typename Arg1, typename Arg2>
+ Arg1 operator()(Arg1 a, Arg2 b) const
+ {
+ return pow(a, b);
+ }
+ };
+
+ struct add
+ {
+ template <typename Arg1, typename Arg2, typename Arg3, typename Arg4>
+ struct result
+ {
+ typedef Arg1 type;
+ };
+
+ template <typename Arg1, typename Arg2, typename Arg3, typename Arg4>
+ Arg1 operator()(Arg1 a, Arg2 b, Arg3 c, Arg4 d) const
+ {
+ return a + b + c + d;
+ }
+ };
+
+int
+main()
+{
+ int i5 = 5;
+ double d5 = 5, d3 = 3;
+
+ test()();
+ BOOST_TEST(bind(sqr(), arg1)(i5) == (i5*i5));
+ BOOST_TEST(bind(fact(), 4)() == 24);
+ BOOST_TEST(bind(fact(), arg1)(i5) == 120);
+ BOOST_TEST((int)bind(power(), arg1, arg2)(d5, d3) == (int)pow(d5, d3));
+ BOOST_TEST((bind(sqr(), arg1) + 5)(i5) == ((i5*i5)+5));
+ BOOST_TEST(bind(add(), arg1, arg1, arg1, arg1)(i5) == (5+5+5+5));
+
+ int const ic5 = 5;
+ // testing consts
+ BOOST_TEST(bind(sqr(), arg1)(ic5) == (ic5*ic5));
+
+ // From Steven Watanabe
+ sqr s;
+ int x = 2;
+ int result = bind(ref(s), _1)(x);
+ BOOST_TEST(result == 4);
+
+ return boost::report_errors();
+}

Modified: trunk/libs/phoenix/test/bind/bind_member_variable_tests.cpp
==============================================================================
--- trunk/libs/phoenix/test/bind/bind_member_variable_tests.cpp (original)
+++ trunk/libs/phoenix/test/bind/bind_member_variable_tests.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -95,9 +95,7 @@
 int
 main()
 {
- //write_test<test::x>(identity());
     write_test<test::x>(add_pointer());
- //write_test<test::xx>(identity());
     write_test<test::xx>(add_pointer());
 
     read_test<test::x>(identity());

Modified: trunk/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp
==============================================================================
--- trunk/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp (original)
+++ trunk/libs/phoenix/test/boost_bind_compatibility/bind_stateful_test.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -146,6 +146,8 @@
     return state_ += x1+x2+x3+x4+x5+x6+x7+x8;
 }
 
+template <typename> struct wrap {};
+
 template<class F> void test(F f, int a, int b)
 {
     BOOST_TEST( f() == a + b );

Modified: trunk/libs/phoenix/test/boost_bind_compatibility/bind_stdcall_mf_test.cpp
==============================================================================
--- trunk/libs/phoenix/test/boost_bind_compatibility/bind_stdcall_mf_test.cpp (original)
+++ trunk/libs/phoenix/test/boost_bind_compatibility/bind_stdcall_mf_test.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -78,7 +78,6 @@
     
     std::cout << typeid(typename boost::result_of<X::f0()>::type).name() << "\n";
 
- /*
     bind(&X::f0, &x)();
     bind(&X::f0, ref(x))();
 
@@ -159,7 +158,6 @@
     bind(&X::g8, ref(x), 1, 2, 3, 4, 5, 6, 7, 8)();
 
     BOOST_TEST( x.hash == 23558 );
- */
 }
 
 int main()

Added: trunk/libs/phoenix/test/function/adapt_function.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/test/function/adapt_function.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,74 @@
+/*=============================================================================
+ Copyright (c) 2011 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)
+ ==============================================================================*/
+#include <iostream>
+#include <cmath>
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/function.hpp>
+
+namespace impl
+{
+ void
+ test()
+ {
+ std::cout << "Test adapting functions...\n";
+ }
+
+ int
+ negate(int n)
+ {
+ return -n;
+ }
+
+ int
+ plus(int a, int b)
+ {
+ return a + b;
+ }
+
+ template <typename T>
+ T
+ plus(T a, T b, T c)
+ {
+ return a + b + c;
+ }
+
+ int
+ plus4(int a, int b, int c, int d)
+ {
+ return a + b + c + d;
+ }
+}
+
+BOOST_PHOENIX_ADAPT_FUNCTION_NULLARY(void, test, impl::test)
+BOOST_PHOENIX_ADAPT_FUNCTION(int, negate, impl::negate, 1)
+BOOST_PHOENIX_ADAPT_FUNCTION(int, plus, impl::plus, 2)
+BOOST_PHOENIX_ADAPT_FUNCTION(
+ typename boost::remove_reference<A0>::type
+ , plus
+ , impl::plus
+ , 3
+)
+BOOST_PHOENIX_ADAPT_FUNCTION(int, plus4, impl::plus4, 4)
+
+int
+main()
+{
+ using boost::phoenix::arg_names::arg1;
+ using boost::phoenix::arg_names::arg2;
+
+ int a = 123;
+ int b = 256;
+
+ test()();
+ BOOST_TEST(::negate(arg1)(a) == -a);
+ BOOST_TEST(::plus(arg1, arg2)(a, b) == a+b);
+ BOOST_TEST(::plus(arg1, arg2, 3)(a, b) == a+b+3);
+ BOOST_TEST(plus4(arg1, arg2, 3, 4)(a, b) == a+b+3+4);
+
+ return boost::report_errors();
+}

Added: trunk/libs/phoenix/test/function/function_tests_phx2.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/test/function/function_tests_phx2.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,116 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <iostream>
+#include <cmath>
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/operator.hpp>
+#include <boost/phoenix/function.hpp>
+
+using namespace boost::phoenix;
+using namespace boost::phoenix::arg_names;
+using namespace std;
+
+ struct test_impl
+ {
+ typedef void result_type;
+ void operator()() const
+ {
+ cout << "Test lazy functions...\n";
+ }
+ };
+
+ function<test_impl> test;
+
+ struct sqr_impl
+ {
+ template <typename Arg>
+ struct result
+ {
+ typedef Arg type;
+ };
+
+ template <typename Arg>
+ Arg operator()(Arg n) const
+ {
+ return n * n;
+ }
+ };
+
+ function<sqr_impl> sqr;
+
+ struct fact_impl
+ {
+ template <typename Arg>
+ struct result
+ {
+ typedef Arg type;
+ };
+
+ template <typename Arg>
+ Arg operator()(Arg n) const
+ {
+ return (n <= 0) ? 1 : n * (*this)(n-1);
+ }
+ };
+
+ function<fact_impl> fact;
+
+ struct pow_impl
+ {
+ template <typename Arg1, typename Arg2>
+ struct result
+ {
+ typedef Arg1 type;
+ };
+
+ template <typename Arg1, typename Arg2>
+ Arg1 operator()(Arg1 a, Arg2 b) const
+ {
+ return pow(a, b);
+ }
+ };
+
+ function<pow_impl> power;
+
+ struct add_impl
+ {
+ template <typename Arg1, typename Arg2, typename Arg3, typename Arg4>
+ struct result
+ {
+ typedef Arg1 type;
+ };
+
+ template <typename Arg1, typename Arg2, typename Arg3, typename Arg4>
+ Arg1 operator()(Arg1 a, Arg2 b, Arg3 c, Arg4 d) const
+ {
+ return a + b + c + d;
+ }
+ };
+
+ function<add_impl> add;
+
+int
+main()
+{
+ int i5 = 5;
+ double d5 = 5, d3 = 3;
+
+ test()();
+ BOOST_TEST(sqr(arg1)(i5) == (i5*i5));
+ BOOST_TEST(fact(4)() == 24);
+ BOOST_TEST(fact(arg1)(i5) == 120);
+ BOOST_TEST((int)power(arg1, arg2)(d5, d3) == (int)pow(d5, d3));
+ BOOST_TEST((sqr(arg1) + 5)(i5) == ((i5*i5)+5));
+ BOOST_TEST(add(arg1, arg1, arg1, arg1)(i5) == (5+5+5+5));
+
+ int const ic5 = 5;
+ // testing consts
+ BOOST_TEST(sqr(arg1)(ic5) == (ic5*ic5));
+
+ return boost::report_errors();
+}

Modified: trunk/libs/phoenix/test/operator/member.cpp
==============================================================================
--- trunk/libs/phoenix/test/operator/member.cpp (original)
+++ trunk/libs/phoenix/test/operator/member.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -43,11 +43,15 @@
     Test* ptr = &test;
 
     BOOST_TEST((val(ptr)->*&Test::value)() == 1);
- //BOOST_TEST((val(cptr)->*&Test::value)() == 1);
- //BOOST_TEST((arg1->*&Test::value)(cptr) == 1);
-
- //((val(ptr)->*&Test::value) = 2)();
- //BOOST_TEST(test.value == 2);
+ /*
+ BOOST_TEST((val(cptr)->*&Test::value)() == 1);
+ BOOST_TEST((arg1->*&Test::value)(cptr) == 1);
+ */
+
+ /*
+ ((val(ptr)->*&Test::value) = 2)();
+ BOOST_TEST(test.value == 2);
+ */
 
 
     BOOST_TEST((val(ptr)->*&Test::func)(3)() == 3);
@@ -89,5 +93,5 @@
     //BOOST_TEST((arg1->*&Test::value)(captr) == 2);
     BOOST_TEST((arg1->*&Test::func)(11)(captr) == 11);
 
- return 0;
+ return boost::report_errors();
 }

Added: trunk/libs/phoenix/test/scope/lambda_tests_phx2.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/phoenix/test/scope/lambda_tests_phx2.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -0,0 +1,91 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <iostream>
+#include <cmath>
+#include <algorithm>
+#include <vector>
+
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/operator.hpp>
+#include <boost/phoenix/scope.hpp>
+#include <boost/phoenix/function.hpp>
+
+namespace boost { namespace phoenix
+{
+ 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();
+
+ 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();
+}}
+
+using namespace boost::phoenix;
+using namespace boost::phoenix::arg_names;
+using namespace boost::phoenix::local_names;
+using namespace std;
+
+struct zzz {};
+
+int
+main()
+{
+ {
+ using boost::phoenix::for_each;
+
+ int init[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ std::vector<int> v(init, init+10);
+
+ int x = 0;
+ for_each(_1, lambda(_a = _2)[_a += _1])(v, x);
+ BOOST_TEST(x == 55);
+ }
+
+ {
+ using boost::phoenix::for_each;
+ using boost::phoenix::push_back;
+
+ int x = 10;
+ std::vector<std::vector<int> > v(10);
+
+ for_each(_1, lambda(_a = _2)[push_back(_1, _a)])(v, x);
+
+ int y = 0;
+ for_each(arg1, lambda[ref(y) += _1[0]])(v);
+ BOOST_TEST(y == 100);
+ }
+ return boost::report_errors();
+}
+

Modified: trunk/libs/phoenix/test/scope/this.cpp
==============================================================================
--- trunk/libs/phoenix/test/scope/this.cpp (original)
+++ trunk/libs/phoenix/test/scope/this.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -10,6 +10,8 @@
 #include <boost/phoenix/operator.hpp>
 #include <boost/phoenix/scope.hpp>
 
+#include <iostream>
+
 template <typename T0>
 void f(T0 t)
 {

Modified: trunk/libs/spirit/test/karma/attribute.cpp
==============================================================================
--- trunk/libs/spirit/test/karma/attribute.cpp (original)
+++ trunk/libs/spirit/test/karma/attribute.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -5,6 +5,9 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/detail/lightweight_test.hpp>
+
+#include <boost/spirit/include/phoenix_limits.hpp>
+
 #include <boost/fusion/include/struct.hpp>
 #include <boost/fusion/include/nview.hpp>
 

Modified: trunk/libs/spirit/test/lex/dedent_handling_phoenix.cpp
==============================================================================
--- trunk/libs/spirit/test/lex/dedent_handling_phoenix.cpp (original)
+++ trunk/libs/spirit/test/lex/dedent_handling_phoenix.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -48,7 +48,7 @@
                           _end = _start
                       ]
                       .else_ [
- _state = "INITIAL"
+ _state = "INITIAL"
                       ]
                   ]
             ;

Modified: trunk/libs/spirit/test/qi/attribute1.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/attribute1.cpp (original)
+++ trunk/libs/spirit/test/qi/attribute1.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -9,6 +9,8 @@
 #include <boost/config/warning_disable.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
+#include <boost/spirit/include/phoenix_limits.hpp>
+
 #include <boost/fusion/include/struct.hpp>
 #include <boost/fusion/include/nview.hpp>
 

Modified: trunk/libs/spirit/test/qi/attribute2.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/attribute2.cpp (original)
+++ trunk/libs/spirit/test/qi/attribute2.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -9,6 +9,8 @@
 #include <boost/config/warning_disable.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
+#include <boost/spirit/include/phoenix_limits.hpp>
+
 #include <boost/fusion/include/struct.hpp>
 #include <boost/fusion/include/nview.hpp>
 

Modified: trunk/libs/spirit/test/qi/repeat.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/repeat.cpp (original)
+++ trunk/libs/spirit/test/qi/repeat.cpp 2011-04-13 15:09:59 EDT (Wed, 13 Apr 2011)
@@ -238,6 +238,7 @@
         BOOST_TEST(!test("aaaaaa", repeat(3, val(5))[char_]));
         BOOST_TEST(!test("aa", repeat(val(3), 5)[char_]));
 
+//#warning "testcase commented out"
         BOOST_TEST(test("aaa", repeat(val(3), inf)[char_]));
         BOOST_TEST(test("aaaaa", repeat(3, val(inf))[char_]));
         BOOST_TEST(test("aaaaaa", repeat(val(3), inf)[char_]));


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