Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71246 - in branches/release/boost/phoenix: . bind bind/detail core core/detail core/detail/preprocessed function function/detail function/detail/preprocessed operator operator/detail operator/detail/preprocessed operator/preprocessed scope statement statement/detail statement/detail/preprocessed stdlib stl stl/algorithm stl/container stl/container/detail
From: hartmut.kaiser_at_[hidden]
Date: 2011-04-14 10:19:25


Author: hkaiser
Date: 2011-04-14 10:19:15 EDT (Thu, 14 Apr 2011)
New Revision: 71246
URL: http://svn.boost.org/trac/boost/changeset/71246

Log:
Spirit: merging Phoenix V3 support from trunk
Added:
   branches/release/boost/phoenix/bind/bind_function.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/bind_function.hpp
   branches/release/boost/phoenix/bind/bind_function_object.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/bind_function_object.hpp
   branches/release/boost/phoenix/bind/bind_member_function.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/bind_member_function.hpp
   branches/release/boost/phoenix/bind/bind_member_variable.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/bind_member_variable.hpp
   branches/release/boost/phoenix/bind/detail/
      - copied from r71227, /trunk/boost/phoenix/bind/detail/
   branches/release/boost/phoenix/bind/detail/function_ptr.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/detail/function_ptr.hpp
   branches/release/boost/phoenix/bind/detail/member_function_ptr.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/detail/member_function_ptr.hpp
   branches/release/boost/phoenix/bind/detail/member_variable.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/bind/detail/member_variable.hpp
   branches/release/boost/phoenix/core/detail/function_eval.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/core/detail/function_eval.hpp
   branches/release/boost/phoenix/core/detail/phx2_result.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/core/detail/phx2_result.hpp
   branches/release/boost/phoenix/function/adapt_callable.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/function/adapt_callable.hpp
   branches/release/boost/phoenix/stl/cmath.hpp
      - copied unchanged from r71227, /trunk/boost/phoenix/stl/cmath.hpp
Removed:
   branches/release/boost/phoenix/function/function_handling.hpp
   branches/release/boost/phoenix/stdlib/
Text files modified:
   branches/release/boost/phoenix/bind.hpp | 5
   branches/release/boost/phoenix/core/actor.hpp | 4
   branches/release/boost/phoenix/core/detail/actor_operator.hpp | 2
   branches/release/boost/phoenix/core/detail/actor_result_of.hpp | 4
   branches/release/boost/phoenix/core/detail/expression.hpp | 6
   branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp | 16
   branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp | 36 +-
   branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp | 56 +-
   branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp | 76 ++--
   branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp | 96 +++---
   branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp | 4
   branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp | 4
   branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp | 4
   branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp | 4
   branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp | 4
   branches/release/boost/phoenix/core/expression.hpp | 9
   branches/release/boost/phoenix/core/is_nullary.hpp | 26 +
   branches/release/boost/phoenix/core/limits.hpp | 6
   branches/release/boost/phoenix/core/reference.hpp | 48 +++
   branches/release/boost/phoenix/core/terminal.hpp | 4
   branches/release/boost/phoenix/core/value.hpp | 9
   branches/release/boost/phoenix/function.hpp | 5
   branches/release/boost/phoenix/function/adapt_function.hpp | 78 +++-
   branches/release/boost/phoenix/function/detail/function_operator.hpp | 6
   branches/release/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp | 60 ++--
   branches/release/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp | 120 ++++----
   branches/release/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp | 180 ++++++------
   branches/release/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp | 240 ++++++++--------
   branches/release/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp | 300 ++++++++++----------
   branches/release/boost/phoenix/function/function.hpp | 11
   branches/release/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp | 10
   branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp | 58 +-
   branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp | 118 ++++----
   branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp | 178 ++++++------
   branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp | 238 ++++++++--------
   branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp | 298 ++++++++++----------
   branches/release/boost/phoenix/operator/member.hpp | 6
   branches/release/boost/phoenix/operator/preprocessed/member_10.hpp | 4
   branches/release/boost/phoenix/operator/preprocessed/member_20.hpp | 4
   branches/release/boost/phoenix/operator/preprocessed/member_30.hpp | 4
   branches/release/boost/phoenix/operator/preprocessed/member_40.hpp | 4
   branches/release/boost/phoenix/operator/preprocessed/member_50.hpp | 4
   branches/release/boost/phoenix/phoenix.hpp | 4
   branches/release/boost/phoenix/scope/local_variable.hpp | 8
   branches/release/boost/phoenix/scope/scoped_environment.hpp | 12
   branches/release/boost/phoenix/statement/detail/catch_push_back.hpp | 12
   branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp | 108 +++---
   branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp | 228 +++++++-------
   branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp | 348 +++++++++++-----------
   branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp | 468 +++++++++++++++---------------
   branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp | 588 ++++++++++++++++++++--------------------
   branches/release/boost/phoenix/statement/switch.hpp | 12
   branches/release/boost/phoenix/statement/try_catch.hpp | 18
   branches/release/boost/phoenix/stl/algorithm/iteration.hpp | 10
   branches/release/boost/phoenix/stl/algorithm/querying.hpp | 68 ++--
   branches/release/boost/phoenix/stl/algorithm/transformation.hpp | 142 ++++----
   branches/release/boost/phoenix/stl/container/container.hpp | 93 +++---
   branches/release/boost/phoenix/stl/container/detail/container.hpp | 12
   58 files changed, 2295 insertions(+), 2185 deletions(-)

Modified: branches/release/boost/phoenix/bind.hpp
==============================================================================
--- branches/release/boost/phoenix/bind.hpp (original)
+++ branches/release/boost/phoenix/bind.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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

Modified: branches/release/boost/phoenix/core/actor.hpp
==============================================================================
--- branches/release/boost/phoenix/core/actor.hpp (original)
+++ branches/release/boost/phoenix/core/actor.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/actor_operator.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/actor_operator.hpp (original)
+++ branches/release/boost/phoenix/core/detail/actor_operator.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/actor_result_of.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/actor_result_of.hpp (original)
+++ branches/release/boost/phoenix/core/detail/actor_result_of.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/expression.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/expression.hpp (original)
+++ branches/release/boost/phoenix/core/detail/expression.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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( \

Modified: branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp
==============================================================================
--- branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp (original)
+++ branches/release/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/expression.hpp
==============================================================================
--- branches/release/boost/phoenix/core/expression.hpp (original)
+++ branches/release/boost/phoenix/core/expression.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/is_nullary.hpp
==============================================================================
--- branches/release/boost/phoenix/core/is_nullary.hpp (original)
+++ branches/release/boost/phoenix/core/is_nullary.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/limits.hpp
==============================================================================
--- branches/release/boost/phoenix/core/limits.hpp (original)
+++ branches/release/boost/phoenix/core/limits.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/reference.hpp
==============================================================================
--- branches/release/boost/phoenix/core/reference.hpp (original)
+++ branches/release/boost/phoenix/core/reference.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/terminal.hpp
==============================================================================
--- branches/release/boost/phoenix/core/terminal.hpp (original)
+++ branches/release/boost/phoenix/core/terminal.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/core/value.hpp
==============================================================================
--- branches/release/boost/phoenix/core/value.hpp (original)
+++ branches/release/boost/phoenix/core/value.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function.hpp
==============================================================================
--- branches/release/boost/phoenix/function.hpp (original)
+++ branches/release/boost/phoenix/function.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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

Modified: branches/release/boost/phoenix/function/adapt_function.hpp
==============================================================================
--- branches/release/boost/phoenix/function/adapt_function.hpp (original)
+++ branches/release/boost/phoenix/function/adapt_function.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/detail/function_operator.hpp
==============================================================================
--- branches/release/boost/phoenix/function/detail/function_operator.hpp (original)
+++ branches/release/boost/phoenix/function/detail/function_operator.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp
==============================================================================
--- branches/release/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp (original)
+++ branches/release/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp
==============================================================================
--- branches/release/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp (original)
+++ branches/release/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp
==============================================================================
--- branches/release/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp (original)
+++ branches/release/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp
==============================================================================
--- branches/release/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp (original)
+++ branches/release/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp
==============================================================================
--- branches/release/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp (original)
+++ branches/release/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/function.hpp
==============================================================================
--- branches/release/boost/phoenix/function/function.hpp (original)
+++ branches/release/boost/phoenix/function/function.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/function/function_handling.hpp
==============================================================================
--- branches/release/boost/phoenix/function/function_handling.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp (original)
+++ branches/release/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp (original)
+++ branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp (original)
+++ branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp (original)
+++ branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp (original)
+++ branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp (original)
+++ branches/release/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/member.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/member.hpp (original)
+++ branches/release/boost/phoenix/operator/member.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/preprocessed/member_10.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_10.hpp (original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_10.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/preprocessed/member_20.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_20.hpp (original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_20.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/preprocessed/member_30.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_30.hpp (original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_30.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/preprocessed/member_40.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_40.hpp (original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_40.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/operator/preprocessed/member_50.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_50.hpp (original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_50.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/phoenix.hpp
==============================================================================
--- branches/release/boost/phoenix/phoenix.hpp (original)
+++ branches/release/boost/phoenix/phoenix.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/scope/local_variable.hpp
==============================================================================
--- branches/release/boost/phoenix/scope/local_variable.hpp (original)
+++ branches/release/boost/phoenix/scope/local_variable.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/scope/scoped_environment.hpp
==============================================================================
--- branches/release/boost/phoenix/scope/scoped_environment.hpp (original)
+++ branches/release/boost/phoenix/scope/scoped_environment.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/detail/catch_push_back.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/detail/catch_push_back.hpp (original)
+++ branches/release/boost/phoenix/statement/detail/catch_push_back.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp (original)
+++ branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_10.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp (original)
+++ branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_20.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp (original)
+++ branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_30.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp (original)
+++ branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_40.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp (original)
+++ branches/release/boost/phoenix/statement/detail/preprocessed/catch_push_back_50.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/switch.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/switch.hpp (original)
+++ branches/release/boost/phoenix/statement/switch.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/statement/try_catch.hpp
==============================================================================
--- branches/release/boost/phoenix/statement/try_catch.hpp (original)
+++ branches/release/boost/phoenix/statement/try_catch.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/stl/algorithm/iteration.hpp
==============================================================================
--- branches/release/boost/phoenix/stl/algorithm/iteration.hpp (original)
+++ branches/release/boost/phoenix/stl/algorithm/iteration.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/stl/algorithm/querying.hpp
==============================================================================
--- branches/release/boost/phoenix/stl/algorithm/querying.hpp (original)
+++ branches/release/boost/phoenix/stl/algorithm/querying.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/stl/algorithm/transformation.hpp
==============================================================================
--- branches/release/boost/phoenix/stl/algorithm/transformation.hpp (original)
+++ branches/release/boost/phoenix/stl/algorithm/transformation.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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

Modified: branches/release/boost/phoenix/stl/container/container.hpp
==============================================================================
--- branches/release/boost/phoenix/stl/container/container.hpp (original)
+++ branches/release/boost/phoenix/stl/container/container.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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: branches/release/boost/phoenix/stl/container/detail/container.hpp
==============================================================================
--- branches/release/boost/phoenix/stl/container/detail/container.hpp (original)
+++ branches/release/boost/phoenix/stl/container/detail/container.hpp 2011-04-14 10:19:15 EDT (Thu, 14 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


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